我熟悉mvc并尝试提交文本框值。因为目前我只得到一个空值。
@using (Html.BeginForm("SearchProducts", "Home"))
{
@Html.TextBoxFor(model => model.SearchValue, new { @class = "input-medium search-query", @placeholder="Search" })
<input type="submit" id="butSubmitSearchString" value="Submit" />
}
控制器
[HttpPost]
public ActionResult SearchProducts(ViewModel model)
{
model = new ViewModel();
string val = model.SearchValue;
return View(model);
}
视图模型
public string SearchValue { get; set; }
如何正确执行此操作以检索文本框值?
答案 0 :(得分:4)
只需删除此行:
model = new ViewModel();
ViewModel
受ASP.NET MVC框架的约束。删除该行后,您会发现val
是SearchValue
中的实际值。
换句话说,当您进入ViewModel
操作时,HttpPost
已经过实例化并设置了属性。
答案 1 :(得分:2)
您正在实例化新模型,而不是使用您在参数中传递的模型。
只需删除model = new ViewModel();