我有一个将表单定义为
的视图<% using (Html.BeginForm( "Update", "CcisCase", FormMethod.Post, new { id = "ccisEditForm" } ))
使用提交按钮:
在RegisterRoutes
方法(位于HttpApplication
中的global.asax.cs
- 派生类)中,我得到了:
routes.IgnoreRoute( "{resource}.axd/{*pathInfo}" );
routes.MapRoute(
"CcisCase",
"CcisCase/{action}/{cmDatabaseId}/{caseId}",
new { Controller = "CcisCase", Action = "CcisCaseEdit", caseId = "" } );
MVC生成的url以“/ Update”结尾,但没有参数。我做错了什么?
谢谢, 鲍勃
答案 0 :(得分:2)
您期望看到哪些参数?一个帖子不会将参数附加到查询字符串,FormMethod.Get会。并且,id的重载是为标记呈现的HTML属性的集合(我假设你知道,但以防万一)。
HTH。
答案 1 :(得分:1)
您的路由包含参数{caseId},但您的BeginForm仅定义了一个id值。
new {id = "cssEditForm"}
你需要这样的东西来包含caseId值
using (Html.BeginForm( "Update", "CcisCase", FormMethod.Post, new { caseId = 1, id = "ccisEditForm" }
如果你的动作没有使用id =“ccisEditForm”值,那么你可以删除它,以减少代码混乱。
答案 2 :(得分:1)
我弄清楚我的问题是什么。我必须按如下方式传递现有的路线数据:
using (Html.BeginForm( "Update", "CcisCase", ViewContext.RouteData.Values, FormMethod.Post, new Dictionary<string, object> { { "id", "ccisEditForm" } } ))