使用Html.BeginForm提交搜索值

时间:2014-01-27 13:46:40

标签: c# asp.net asp.net-mvc

我熟悉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; }

如何正确执行此操作以检索文本框值?

2 个答案:

答案 0 :(得分:4)

只需删除此行:

model = new ViewModel();

ViewModel受ASP.NET MVC框架的约束。删除该行后,您会发现valSearchValue中的实际值。

换句话说,当您进入ViewModel操作时,HttpPost已经过实例化并设置了属性。

答案 1 :(得分:2)

您正在实例化新模型,而不是使用您在参数中传递的模型。 只需删除model = new ViewModel();

即可