如何从控制器中的视图获取请求的参数

时间:2013-04-23 07:22:41

标签: asp.net-mvc

我是mvc的新手,我想知道如何从视图中获取请求的参数。

这是我的观点代码:

@using (Ajax.BeginForm("LoadPartialView", new AjaxOptions())) {
<input type="submit" value="Submit" id="submit1"/>  }

我想在控制器的操作方法Submit中获取值submit1或id LoadPartialView。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

在不了解视图模型或控制器方法的任何内容的情况下,您可以通过执行以下操作来获取值:

查看:

@using (Ajax.BeginForm("MyAction", new AjaxOptions())) {
    <input type="submit" name="submit" value="Submit" id="submit1"/> 
}

控制器:

[HttpPost]
public ActionResult MyAction(FormCollection f)
{
    var submitValue = f["submit"];
}

或者,将视图键入具有submit属性的模型,并将其传递给控制器​​方法,执行以下操作:

型号:

public class MyModel
{
    public String Submit { get; set; }
}

查看:

@model MyModel

@using (Ajax.BeginForm("MyAction", new AjaxOptions())) {
    <input type="submit" name="Submit" value="Submit" id="submit1"/> 
}

控制器:

[HttpPost]
public ActionResult MyAction(MyModel model)
{
    var submitValue = model.Submit;
}

后一种模型显然更具可扩展性,因为您可以将此值与其他表单值分组。

答案 1 :(得分:0)

默认情况下,您需要将name字段的任何input字段序列化为FormcCollection,例如:

<input type="text" value="yourvalue" name="yourname" id="yourid"/>

然后您可以通过以下方式检索此值:

public ActionResult YourAction(FormCollection formCollection)
{
    var val = formsCollection["yourname"];
    //...
}