1

我有一个将表单定义为的视图

<% 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”结尾,但没有参数。我究竟做错了什么?

谢谢,鲍勃

4

3 回答 3

2

您希望看到哪些参数?帖子不会将参数附加到查询字符串,FormMethod.Get 会。而且,带有 id 的重载是要为标签呈现的 HTML 属性的集合(我假设您知道,但以防万一)。

HTH。

于 2010-11-02T18:12:04.563 回答
1

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

new {id = "cssEditForm"}

你需要这样的东西来包含 caseId 值

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

如果您的操作未使用 id="ccisEditForm" 值,那么您可以将其删除以减少代码混乱。

于 2010-11-02T18:35:51.627 回答
1

我弄清楚我的问题是什么。我必须按如下方式传递现有的路线数据:

        using (Html.BeginForm( "Update", "CcisCase", ViewContext.RouteData.Values, FormMethod.Post, new Dictionary<string, object> { { "id", "ccisEditForm" } } ))
于 2010-11-02T22:59:24.593 回答