【问题标题】:ASP.NET MVC POST Parameter into RouteDataASP.NET MVC POST 参数到 RouteData
【发布时间】:2010-03-31 05:31:04
【问题描述】:

我正在使用 jQuery 将 Id 发布到我的路线,例如:
http://localhost:1234/Load/Delete
POST 参数 ID = 1

我现在只使用 Global.asax.cs 中的默认路由:

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = "" }
);

当我执行 POST 时,在我的 ActionFilter 中 filterContext.RouteData.Values["Id"] 设置为默认值 ""。理想情况下,如果 URL 出现"",我希望它自动使用 POST 参数值。我知道它发布正确,因为我可以在filterContext.HttpContext.Request.Params["Id"] 中看到"1" 的值。

有没有办法让 RouteData 使用 POST 参数作为回退值?

【问题讨论】:

    标签: c# asp.net-mvc routedata post-parameter


    【解决方案1】:

    您始终可以添加另一个不使用此参数的路由。我在家里的 ASP.Net MVC 书中有一个示例。我回家后会更新这个:)

    但为了清楚起见,我建议将 id 重命名为 ObjectId,无论是在路由中还是在您的 jquery 调用者中。

    找不到参考,但从外观上看,最好的办法是更改实体中 id 的名称。大多数 ASP.Net MVC 文章建议使用 ConferenceId、PersonId 等。

    【讨论】:

    • 所以我尝试将 POST 参数更改为 LoadId = 1,但该值仍然出现在我的 Request.Form["LoadId"] 中,而不是 RouteData.Values["LoadId"] 中。当它是一个 POST 值时,有没有办法将它放入 RouteData?
    • 为什么它会在你的 RouteData 中,如果它不在 URL 中(即路由)?当它是 POST 值时,它应该是控制器操作的参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-04
    相关资源
    最近更新 更多