我正在尝试在MVC中搜索一个4位数的邮递号,而我的代码不起作用,是什么原因使其无法正常工作?
到目前为止,我已经在网络上尝试了许多不同的解决方案,但是都没有成功。甚至在尝试将其转换为字符串时也没有,这只会造成很大的错误,因此我真的放弃了。
public ActionResult Index(int search)
{
var storingen = from s in db.tbl_Storing
select s;
if (search != null)
{
storingen = storingen.Where(s => s.postcode_nr == (search));
}
return View(storingen.ToList());
}
那是从我的控制器来的,这是从我的实际观点来看的:
Zoek op postcode: @Html.TextBox("search")
<input type="submit" value="Search" />
现在,当我实际填写两个当前存在的数字之一并点击搜索时,什么也没有发生,没有错误,什么也没有。
答案 0 :(得分:1)
您可以从int
更改为int?
,并检查控制器中的搜索是否为空。
如果用户输入abc之类的文本,则搜索参数会将null传递给控制器。
[HttpGet]
public ActionResult Index(int? search)
{
// check search null before query
var storingen = from s in db.tbl_Storing
select s;
if (search != null)
{
storingen = storingen.Where(s => s.postcode_nr == (search));
}
return View(storingen.ToList());
}
这是cshtml的示例
<form action="/YourController/Index" method="get">
Zoek op postcode: @Html.TextBox("search")
<input type="submit" value="Search" />
</form>