【问题标题】:form action for view that serve multiple routes为提供多条路线的视图形成操作
【发布时间】:2015-02-19 15:27:58
【问题描述】:

在我的 mvc 4 应用程序中,有一个视图为“添加”和“编辑”操作提供请求,两个请求的路由如下:

对于添加操作:

"ItemAdd", Item/Add, new {controller = "Item", action = "ItemAddEdit"}

对于编辑操作:

"ItemEdit", Item/Edit/{ItemID}, new {controller = "Item", action = "ItemAddEdit"}

在视图中,我使用以下助手来呈现表单标签:

@using (Html.BeginForm("ItemAddEdit", "Item", FormMethod.Post, new { @enctype = "multipart/form-data", @id="main-form" }))

现在问题出在“添加”和“编辑”两种情况下,表单操作属性都一样

如何更改与路由相关的表单操作属性。

【问题讨论】:

  • 您还有另一个名为 ItemAddEdit() 的 POST 操作吗?不清楚你想用这个实现什么?如果您为ItemID 传递参数,它将被添加到表单action 属性中
  • 请让我们知道您明确想要实现的目标请将您的控制器代码用于“ItemAdd”和“ItemEdit”。

标签: asp.net-mvc forms asp.net-mvc-4


【解决方案1】:

问题解决了。

我只是更改了路由注册文件中的路由顺序,一切正常。

"ItemEdit", Item/Edit/{ItemID}, new {controller = "Item", action = "ItemAddEdit"}
"ItemAdd", Item/Add, new {controller = "Item", action = "ItemAddEdit"}

【讨论】:

    【解决方案2】:

    从表单助手中删除控制器名称

    @using (Html.BeginForm("", "", FormMethod.Post, new { @enctype = "multipart/form-data", @id="main-form" }))

    【讨论】:

      猜你喜欢
      • 2014-10-27
      • 2015-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-29
      • 1970-01-01
      相关资源
      最近更新 更多