如何在ASP.NET MVC表单中实现多个按钮的联动操作?

2026-03-30 13:211阅读0评论SEO基础
  • 内容介绍
  • 相关推荐

本文共计517个文字,预计阅读时间需要3分钟。

如何在ASP.NET MVC表单中实现多个按钮的联动操作?

我有种感觉,我对网状过于好奇。我在ASP.NET MVC项目中有一个表单,它包含一些输入字段和两个按钮。一个按钮用于过滤其中的一个表格框架,另一个用于提交表单。我的“

我有一种感觉,我对此过于“网状”,但无论如何我都会问.我在ASP.NET MVC项目中有一个表单,它有一些输入字段和两个按钮.一个按钮用于“过滤”其中一个列表框.另一个用于提交表单.我的观点看起来像这样:

<%using (Html.BeginForm()) {%> <%=Html.TextBox("SearchItems") %> <input type="submit" name="Command" value="Find" /> <%=Html.ListBox("SelectedItems", new MultiSelectList(model.AvailableItems,"Id", "Name", model.SelectedItems))%> //Some other form fields. <input type="submit" name="Command" value="Send" /> <%} %>

我的动作看起来像这样:

[AcceptVerbs(HttpVerbs.Post)] public ActionResult Index([Bind(Prefix = "")]SendMessageRequest model) { if (model.Command == "Find") return SearchItems(model); if (model.Command == "Send") return Send(model); throw new Exception("Invalid command."); }

这样做 – 控制器根据单击的按钮选择正确的操作.但是,它并不理想,因为输入按钮的值也是显示的文本.如果我想翻译这个应用程序,那么行动就会破裂.为了解决这个问题,我可以使用< button>元素,允许文本和值不同.但是,这个应用程序是用于Pocket IE,显然Pocket IE处理这些不同 – 它提交Command的两个值,这打破了行动.

因为这是针对Pocket IE的,所以我对JavaScript的处理方式也非常有限. Ajax已经出局,但我可以通过按钮’onClick设置隐藏字段.

所以,我的问题是在MVC视图中允许单个表单有多个按钮的最佳方法是什么?或者,我应该以某种方式将我的观点分解为多种形式吗?

我会建议使用2种不同的动作的多种形式.我认为这也更容易测试:

(c => c.Search(),FormMethod.Get);
{%>

如何在ASP.NET MVC表单中实现多个按钮的联动操作?

(c => c.Send(),FormMethod.Post);
{%>
发送

或类似的东西.然后在控制器中你有2个相应的动作.这意味着责任被打破了.使用MVC,您可以拥有多个表单,与Webforms不同.所以你可以挣脱!

本文共计517个文字,预计阅读时间需要3分钟。

如何在ASP.NET MVC表单中实现多个按钮的联动操作?

我有种感觉,我对网状过于好奇。我在ASP.NET MVC项目中有一个表单,它包含一些输入字段和两个按钮。一个按钮用于过滤其中的一个表格框架,另一个用于提交表单。我的“

我有一种感觉,我对此过于“网状”,但无论如何我都会问.我在ASP.NET MVC项目中有一个表单,它有一些输入字段和两个按钮.一个按钮用于“过滤”其中一个列表框.另一个用于提交表单.我的观点看起来像这样:

<%using (Html.BeginForm()) {%> <%=Html.TextBox("SearchItems") %> <input type="submit" name="Command" value="Find" /> <%=Html.ListBox("SelectedItems", new MultiSelectList(model.AvailableItems,"Id", "Name", model.SelectedItems))%> //Some other form fields. <input type="submit" name="Command" value="Send" /> <%} %>

我的动作看起来像这样:

[AcceptVerbs(HttpVerbs.Post)] public ActionResult Index([Bind(Prefix = "")]SendMessageRequest model) { if (model.Command == "Find") return SearchItems(model); if (model.Command == "Send") return Send(model); throw new Exception("Invalid command."); }

这样做 – 控制器根据单击的按钮选择正确的操作.但是,它并不理想,因为输入按钮的值也是显示的文本.如果我想翻译这个应用程序,那么行动就会破裂.为了解决这个问题,我可以使用< button>元素,允许文本和值不同.但是,这个应用程序是用于Pocket IE,显然Pocket IE处理这些不同 – 它提交Command的两个值,这打破了行动.

因为这是针对Pocket IE的,所以我对JavaScript的处理方式也非常有限. Ajax已经出局,但我可以通过按钮’onClick设置隐藏字段.

所以,我的问题是在MVC视图中允许单个表单有多个按钮的最佳方法是什么?或者,我应该以某种方式将我的观点分解为多种形式吗?

我会建议使用2种不同的动作的多种形式.我认为这也更容易测试:

(c => c.Search(),FormMethod.Get);
{%>

如何在ASP.NET MVC表单中实现多个按钮的联动操作?

(c => c.Send(),FormMethod.Post);
{%>
发送

或类似的东西.然后在控制器中你有2个相应的动作.这意味着责任被打破了.使用MVC,您可以拥有多个表单,与Webforms不同.所以你可以挣脱!