Asp.net mvc 使用Html.BeginForm变量时,ASP.MVC中不显示URL参数

Asp.net mvc 使用Html.BeginForm变量时,ASP.MVC中不显示URL参数,asp.net-mvc,html.beginform,Asp.net Mvc,Html.beginform,我有一个视图,它将窗体定义为 <% using (Html.BeginForm( "Update", "CcisCase", FormMethod.Post, new { id = "ccisEditForm" } )) MVC生成的url以“/Update”结尾,但没有参数。我做错了什么 谢谢, Bob您希望看到哪些参数?post不会向querystring(FormMethod.Get)追加参数。id重载是要为标记呈现的HTML属性集合(我假设您知道,但只是以防万一) HTH.您希望

我有一个视图,它将窗体定义为

<% using (Html.BeginForm( "Update", "CcisCase", FormMethod.Post, new { id = "ccisEditForm" } ))
MVC生成的url以“/Update”结尾,但没有参数。我做错了什么

谢谢,
Bob

您希望看到哪些参数?post不会向querystring(FormMethod.Get)追加参数。id重载是要为标记呈现的HTML属性集合(我假设您知道,但只是以防万一)


HTH.

您希望看到哪些参数?post不会向querystring(FormMethod.Get)追加参数。id重载是要为标记呈现的HTML属性集合(我假设您知道,但只是以防万一)


HTH.

您的路由包含一个参数{caseId},但您的BeginForm只定义了一个id值

new {id = "cssEditForm"}
您需要这样的内容来包含caseId值

using (Html.BeginForm( "Update", "CcisCase", FormMethod.Post, new { caseId = 1, id = "ccisEditForm" }

如果您的操作未使用id=“ccisEditForm”值,则可以删除该值以减少代码混乱。

您的路由包含一个参数{caseId},但您的BeginForm仅定义一个id值

new {id = "cssEditForm"}
您需要这样的内容来包含caseId值

using (Html.BeginForm( "Update", "CcisCase", FormMethod.Post, new { caseId = 1, id = "ccisEditForm" }

如果您的操作没有使用id=“ccisEditForm”值,则可以删除该值以减少代码混乱。

我发现了问题所在。我必须按如下方式传递现有路线数据:

        using (Html.BeginForm( "Update", "CcisCase", ViewContext.RouteData.Values, FormMethod.Post, new Dictionary<string, object> { { "id", "ccisEditForm" } } ))
使用(Html.BeginForm(“Update”、“CcisCase”、ViewContext.RouteData.Values、FormMethod.Post、新字典{{“id”、“ccisEditForm”}))

我发现了我的问题所在。我必须按如下方式传递现有路线数据:

        using (Html.BeginForm( "Update", "CcisCase", ViewContext.RouteData.Values, FormMethod.Post, new Dictionary<string, object> { { "id", "ccisEditForm" } } ))
使用(Html.BeginForm(“Update”、“CcisCase”、ViewContext.RouteData.Values、FormMethod.Post、新字典{{“id”、“ccisEditForm”}))

谢谢。我刚刚发布了我的修复程序,并且必须同时使用强类型RouteValueDictionary和Dictionary参数(见我稍后的答案)。谢谢。我刚刚发布了我的修复程序,并且必须同时使用强类型的RouteValueDictionary和Dictionary参数(见后面的答案)。