我需要从我的 post 方法的 url 中获取数据。我的 asax 上有这个路由:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
然后在我的 Home Controller 上,在 Get 下:
[HttpGet]
public ActionResult Index()
{
var id = ControllerContext.RouteData.GetRequiredString("id");
}
并在帖子上:
[HttpPost]
public ActionResult SomeNewNameHere(HomeModel homeModel)
{
var id = ControllerContext.RouteData.GetRequiredString("id");
}
我的问题是我需要来自我的 post 方法的 url 的 id。通过调试,我注意到它在 get 方法上获取了 id,但是当我发布它时,它返回一个 null 导致错误。所以基本上,RouteValues 对 Get 有效,但对我的 Post 无效。我在这里错过了什么?谢谢!
示例网址:
http://localhost:1000/Controller/Action/12312121212
编辑:
我也试过这个但没有运气:
var id = ControllerContext.RouteData.Values["id"];
视图上的表格:
@using (Html.BeginForm("SomeNewNameHere", "Home", FormMethod.Post))