2010-10-06 92 views
2

是否可以使用参数向控制器提交视图上的表单?ASP.NET MVC 2向控制器动作提交表单和参数

我控制器操作是:

public ActionResult Index(BusinessObject busObj, int id = 0){ 
    return RedirectToAction("Index", new {businessObj = busObj, search = id }); 
} 

我有一个提交按钮,但我也有回发到控制器,以便可以将这些值过滤dropdownlists。我试图区分使用id参数的事件。我的直觉告诉我,这涉及到路由,但我不知道要采取什么方法。 洞察力是受欢迎的:D

回答

2

你的问题不是很清楚。表单已包含将发送给控制器操作的参数。所以只要你在表单动作或表单内包含id参数,它的值就会被发送。

例为路线参数:

<% using (Html.BeginForm("Index", "Home", new { id = "123" })) { %> 
    ... 
<% } %> 

而且为输入域:

<% using (Html.BeginForm("Index", "Home", FormMethod.Post)) { %> 
    <%= Html.Hidden("id", "123") %> 
<% } %> 
+0

生病尝试进行阐述。当通过搜索按钮提交表单时,我希望控制器操作的id参数为1.例如,当发生dropdownlist更改事件时,我希望它为0(或null)。 – 2010-10-06 20:52:03

+0

发生dropdownlist事件时,表单将不会自动提交。你需要自己提交。这意味着您需要编写javascript并订阅下拉列表的更改事件。然后,您可以在提交表单前简单地将隐藏字段的值设置为0。 – 2010-10-06 20:53:40

+0

你有最好的例子,我认为新的{id =“123”}}是设置窗体的标识,而不是路由参数。至少,在我的代码中,我使用它作为识别我何时使用JQuery来捕捉dropdownlist.change和button.submit事件。你能否详细说明如何使用它? – 2010-10-06 20:58:47

相关问题