我的cshtml页面有这样的代码
model Kouponer.Models.person_T
@using (Html.BeginForm("BuynowForm", "Home"))
{
<label>@Model.name</label>
<label>address</label>
@Html.TextBox("address")<div>
<input type="submit" value="Submit" class="btn btn-primary" />
}
我当前的actionresult方法是
[HttpPost]
public ActionResult BuynowForm(FormCollection col)
{ string address = col["address"];
return View();
}
这里我只得到formcollection值。如何传递模型 formcollection?
答案 0 :(得分:3)
在Controller
命名空间的System.Web.Mvc
类中,有一个名为HttpRequestBase
的Request
属性,其中包含当前http请求的所有数据。在其属性中,有一个名为NameValueCollection
的Form
属性,您正在寻找。
用法如下:
[HttpPost]
public ActionResult BuynowForm(person_T model)
{
string addressFromModel = model.Address;
string addressFromRequest = Request.Form["address"];
return View();
}
答案 1 :(得分:1)
除非我完全遗漏了某些内容,否则您应该只需在控制器的sig上添加模型类型。
[HttpPost]
public ActionResult BuynowForm(Models.person_T model, FormCollection col)
{ string address = col["address"];
string addressFromModel = model.Address;
return View();
}
但是,如果您要使用模型绑定,则需要FormCollection对象似乎是多余的。我会阅读评论中给出的链接,然后选择模型绑定。