MVC 4 - 在收集表单数据时从URL传递参数到控制器

时间:2012-11-07 06:03:58

标签: asp.net-mvc controller asp.net-mvc-4 http-post parameter-passing

我的视图中有2个字段的表单。用户单击提交按钮,将查询特定于该用户的一些数据以及他们在表单中输入的数据。 用户的电子邮件地址在URL上传递。 (例如,ActionName?user_email = yaddd @ yyy.com) 我需要从URL收集表单数据和电子邮件,并将其传递给我的控制器。

我需要从我的数据库中查询数据并向用户显示一条消息。

关于这个问题,我找不到任何好的链接或网站。

这是我到目前为止所尝试的:

    [HttpPost]
    public ActionResult Collect(String s1, String s2, string user_email)
    {}
    and 
    [HttpPost]
    public ActionResult Collect(FormCollection fm, string user_email)
    {}

他们似乎根本不收集表单数据。你有什么建议?

2 个答案:

答案 0 :(得分:1)

您是否考虑过使用模型绑定?理想情况下,我会对您在表单中发送的数据使用模型绑定,并使用参数对查询字符串执行操作。所以在你的情况下我会定义一个如下所示的模型

public class MyModel
{
    public string S1 {get; set;}
    public string S1 {get; set;}
}

然后将操作定义为

[HttpPost]
public ActionResult Collect(MyModel model, string user_email)
{
}

这一直对我有用。尝试一下,如果它不起作用,请告诉我

答案 1 :(得分:0)

这个终于奏效了!

[HttpPost]
public ActionResult Collect(MyModel model)
{

string email = Request.QueryString["user_email"];
// Code

}