拜托,如果有人可以帮助我了解如何在不使用 Entity Framework 的情况下在 MVC 5 中创建搜索页面,我将非常高兴。如果用户输入产品名称并发布,结果将显示在 GridView
或单行的 InputBox
/Label
中。我在后端使用 C# 和 SQLServer。我只是 MVC 和 C# 的初学者。
我创建了一个如下所示的 Controller ;
{
connect pcon = new connect();
using (SqlConnection conn = new SqlConnection(pcon.CS))
{
try
{
//do something
pcon.cmd.CommandText = "SELECT * FROM tbproduct WHERE itemName=@name)";
pcon.cmd.Parameters.Add(new SqlParameter("@name", System.Data.SqlDbType.NVarChar, 50));
pcon.cmd.Parameters["@name"].Value = p.itemName;
pcon.cmd.Connection = conn;
conn.Open();
datagridview = pcon.cmd.ExecuteReader();
TempData["Success"] = "Record Added Sucessfully.";
return RedirectToAction("Index", "Product");
}
catch (Exception ex)
{
// throw ex;
// return RedirectToAction("Index", "Product");
return View("Error", new HandleErrorInfo(ex, "Product", "AddProduct"));
} // end of try-catch
} // end of using
} // end of spurious open bracket
有了这个,我不知道如何将它传递给 View 以获得有意义的结果。谢谢
实际上你的 Controller 方法需要带一些搜索参数来搜索并返回结果。
您还可以根据要在 View 上显示的属性/字段创建 View 模型,然后将结果映射到 View 模型并返回它。
public ActionResult DoSearch(string searchString)
{
var movies = <get the movie list>;
if (!String.IsNullOrEmpty(searchString))
{
movies = movies.Where(s => s.Title.Contains(searchString));
}
return View(movies);
}
在 View 中,您可以通过循环显示结果的模型来创建表格。
@model IEnumerable<MvcMovie.Models.Movie>
@
if (Model.Count() == 0)
{
<tr>
<td colspan = "3" >Records not found</td>
</tr >
}
else
{
foreach(var item in Model)
{
<tr>
<td> @Html.DisplayFor(modelItem = > item.MovieName)</td>
<td> @Html.DisplayFor(modelItem => item.ReleaseDate)</td>
</tr >
}
}
为了显示更具吸引力和用户友好的表格,您也可以使用 IPagedList
。
看看http://www.asp.net/mvc/overview/getting-started/introduction/adding-search教程。
我是一名优秀的程序员,十分优秀!