gpt4 book ai didi

c# - 如何在 asp.net mvc3 中进行搜索

转载 作者:太空宇宙 更新时间:2023-11-03 21:44:32 26 4
gpt4 key购买 nike

我使用 mvc3,我有一个空的搜索表单,因为我只使用带有搜索按钮的文本框,如果用户搜索数据并单击搜索按钮,那么它必须显示从索引 View 中获取的结果。这是我的 Controller 操作

     public ActionResult Search(string searchString)
{
var certificate = from s in db.certificate_mst
select s;
if (!String.IsNullOrEmpty(searchString))
{
certificate = certificate.Where(s => s.CertificateNo.Contains(searchString));

}
return View(certificate);
}

我的 View 代码是

   @using (Html.BeginForm("Search","certificate1",FormMethod.Get))
{
<p><b>CertificateNo</b>:@Html.TextBox("searchString")
<input type="submit" value="search" />

通过使用此代码,搜索工作正常,但我在搜索之前获取了我 View 中的所有数据,我需要在单击搜索按钮之前有一个空表单,并且只有在我单击搜索之后它才必须显示结果。

最佳答案

在检索证书之前简单地检查空字符串

public ActionResult Search(string searchString)
{
if (String.IsNullOrEmpty(searchString))
{
//Return empty viewModel
return View();
}

var certificate = db.certificate_mst.Where(s => s.CertificateNo.Contains(searchString));
return View(certificate);
}

另请查看我写的一篇关于 IQueryable 的搜索扩展方法的博文,应该对您有所帮助

http://www.ninjanye.co.uk/2013/03/c-generic-search-extension-method-for.html

http://jnye.co/Posts/6/c%23-generic-search-extension-method-for-iqueryable

使用扩展方法你的代码变成...

var certificate = db.certificate_mst.Search(s => s.CertificateNo, searchString));

首选方法是将 View 拆分为获取和发布操作,如下所示。这允许您在发布空字符串时返回所有结果:

public ActionResult Search()
{
return View();
}

[HttpPost]
public ActionResult Search(string searchString)
{
var certificate = db.certificate_mst.Where(s => s.CertificateNo.Contains(searchString));
//OR
//var certificate = db.certificate_mst.Search(s => s.CertificateNo, searchString));
return View(certificate);
}

关于c# - 如何在 asp.net mvc3 中进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17745309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com