在Asp.net MVC视图中,我创建了一个带有输入字段的表单。
用户设置名字(或部分名称),按下提交按钮。
这是表单部分:
<div>
<form action="SearchCustomer" methos="post">
Enter first name: <input id="Text1" name="txtFirstName" type="text" />
<br />
<input id="Submit1" type="submit" value="Search Customer" />
</form>
</div>
这是Controller中的SearchCustomer,它从表单中获取数据:
CustomerDal dal = new CustomerDal();
string searchValue = Request.Form["txtFirstName"].ToString();
List<Customer> customers = (from x in dal.Customers
where x.FirstName.Contains(searchValue)
select x).ToList<Customer>();
CustomerModelView customerModelView = new CustomerModelView();
customerModelView.Customers = customers;
return View("ShowSearch", customerModelView);
当我运行程序并输入名字(&#34; Jhon&#34;例如)时,代码返回到SearchCustomer函数,但Request.Form为空。
为什么呢?
感谢。
答案 0 :(得分:1)
您需要修改代码:
您需要在此处提供一个操作名称,该名称应在您的控制器(SearchController)中定义,其名称与&#39; ActionName&#39;相同。你会输入以下代码。 如果SearchController是您的操作名称,则提供可以执行操作的控制器。
<div>
<form action="SearchCustomer/<ActionName>" method="post">
Enter first name: <input id="Text1" name="txtFirstName" type="text" />
<br />
<input id="Submit1" type="submit" value="Search Customer" />
</form>
</div>
使用Html.BeginForm:
@using (Html.BeginForm("<ActionName>","<ControllerName>", FormMethod.Post))
{
Enter first name: <input id="Text1" name="txtFirstName" type="text" />
<br />
<input id="Submit1" type="submit" value="Search Customer" />
}
答案 1 :(得分:0)
您的method
拼错了不应该是methos
而是method
,如下所示:
<form action="SearchCustomer" method="post">
....
</form>
答案 2 :(得分:0)
如果您View
的名称与ActionResult
方法的名称相同,请尝试以下操作:
@using(Html.BeginForm())
{
... enter code
}
默认情况下,它已经是POST
方法类型,并且会定向到ActionResult
。有一点需要确定:您需要在[HttpPost]
方法上使用ActionResult
属性,以便表单知道要去哪里:
[HttpPost]
public ActionResult SearchCustomer (FormCollection form)
{
// Pull from the form collection
string searchCriteria = Convert.ToString(form["txtFirstName"]);
// Or pull directly from the HttpRequest
string searchCriteria = Convert.ToString(Request["txtFirstName"]);
.. continue code
}
我希望这有帮助!
答案 3 :(得分:0)
在控制器上设置[HttpPost]。
[HttpPost]
public ActionResult SearchFunction(string txtFirstName)
{
CustomerDal dal = new CustomerDal();
string searchValue = txtFirstName;
List<Customer> customers = (from x in dal.Customers
where x.FirstName.Contains(searchValue)
select x).ToList<Customer>();
CustomerModelView customerModelView = new CustomerModelView();
customerModelView.Customers = customers;
return View("ShowSearch", customerModelView);
}