Asp.net mvc 如何在MVC Razor中搜索同一页面

Asp.net mvc 如何在MVC Razor中搜索同一页面,asp.net-mvc,razor,Asp.net Mvc,Razor,如何在MVC Razor中搜索同一页面?例如如果我搜索返回,我的页面在打开时没有任何结果。我必须使用IEnumerable获取结果,但如果我使用IEnumerable获取空页面,我将得到错误 搜索页面 @model IEnumerable<SearchResult> <span>Search results:</span> <p> @foreach(var item in Model) { @item.Title<

如何在MVC Razor中搜索同一页面?例如如果我搜索返回,我的页面在打开时没有任何结果。我必须使用
IEnumerable
获取结果,但如果我使用
IEnumerable
获取空页面,我将得到错误

搜索页面

@model IEnumerable<SearchResult>
<span>Search results:</span>
<p>
    @foreach(var item in Model)
    {
       @item.Title<br/>
    }
</p>
@model IEnumerable
搜索结果:

@foreach(模型中的var项目)
{
@项目名称
}


对于这种情况,您需要返回空模型。例如,在控制器代码中:

public ActionResult Test()
{
    // some actions
    return View(new List<SearchResult>());
}
公共操作结果测试()
{
//一些行动
返回视图(新列表());
}

在这种情况下,它将发送空模型,并且不会失败

您可以创建包含搜索属性和结果列表的模型

型号

Public class MySearchModel{
public string searchInput { get; set; }
public List<mySearchResultModel> resultList { get; set; }}
查看

@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 />
}
@model IEnumerable<mySearchResultModel>
<input type="text" name="searchInput"/>

Search results:
@foreach(var item in Model) { @item.Title<br/> }
查看

@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 />
}
@model IEnumerable<mySearchResultModel>
<input type="text" name="searchInput"/>

Search results:
@foreach(var item in Model) { @item.Title<br/> }
@model IEnumerable
搜索结果:
@foreach(模型中的var项){@item.Title

您会遇到什么错误?如何将数据从控制器发送到视图?您也可以显示此代码吗?我在第一次打开页面时遇到错误,因为我以Get方法调用页面,并且此页面的ActionResult仅返回视图(),不返回任何模型。谢谢您的帮助。