[英]How can I reformat the way a data appears inside an ASP MVC Razor page?
[英]How can i do search inside same page in MVC Razor
如何在MVC Razor的同一页面内搜索? 例如; 如果我搜索return,我的页面在打开时没有任何结果。我必须使用IEnumerable<model>
来获取结果,但是如果我使用IEnumerable<model>
来获取空白页,则会收到错误消息。
搜索页面
@model IEnumerable<SearchResult>
<span>Search results:</span>
<p>
@foreach(var item in Model)
{
@item.Title<br/>
}
</p>
对于这种情况,您需要返回空模型。 例如在控制器代码中:
public ActionResult Test()
{
// some actions
return View(new List<SearchResult>());
}
在这种情况下,它将发送空模型,并且不会失败。
您可以创建一个包含搜索属性和结果列表的模型。
模型
Public class MySearchModel{
public string searchInput { get; set; }
public List<mySearchResultModel> resultList { get; set; }}
调节器
public ActionResult Index()
{
var model = new MySearchModel();
return View(model);
}
[HttpPost]
public ActionResult Index(MySearchModel model)
{
model.searchInput //filter
model.mySearchResultModel = //query where filter
return View(model);
}
视图
@model MySearchModel
<div>
@Html.LabelFor(x => x.searchInput)
@Html.TextBoxFor(x => x.searchInput)
</div>
<span>Search results:</span>
@foreach (var item in Model.mySearchResultModel){
@item.Title<br />
}
完成此操作的另一种方法是添加搜索输入,并使用输入名称将它们映射到要发布的控制器操作:
调节器
public ActionResult Index()
{
var model = new mySearchResultModel();
return View(model);
}
[HttpPost]
public ActionResult Index(mySearchResultModel model, string searchInput)
{
model.mySearchResultModel = //query where filter (searchInput)
return View(model);
}
视图
@model IEnumerable<mySearchResultModel>
<input type="text" name="searchInput"/>
Search results:
@foreach(var item in Model) { @item.Title<br/> }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.