我有MVC 4应用程序,用户可以从下拉列表中选择数据源,并根据我们使用Entity Framework在相关表中搜索的选择。数据模型将返回到搜索结果视图。我为每个源结果创建了一个局部视图,因为每个数据模型中的字段不同。我的代码看起来像这样
@using SFRS.GazMatching.Web.Models
@model IPagedList<CentraladdrcdoQuery>
@Html.Partial("_SearchForm", searchFormViewModel)
<h4>Search Results</h4>
@if (ViewBag.IsCentralAddrcCDOQuery)
{
@Html.Partial("_CentraladdrcdoQuery", Model)
}
@if (ViewBag.IsLandbfsladdraddrcdoQuery)
{
@Html.Partial("_LandbfsladdraddrcdoQueries", Model)
}
只是想知道是否可以将此模型转换为接受任何数据模型IPagedList<CentraladdrcdoQuery>
,即IPagedList<T>
和T can of CentraladdrcdoQuery,LandbfsladdraddrcdoQuery等类型,我们可以通过检查ViewBag值来呈现相关的局部视图< / p>
答案 0 :(得分:0)
我设法通过创建新模型SearchResultsModel来解决这个问题,如下所示,并将各个数据模型实体添加为属性。在控制器中,我检索搜索结果并根据用户对源的选择设置属性值并返回此模型
public class SearchResultsModel
{
public IEnumerable<CentraladdrcdoQuery> centraladdrcdoQuery { get; set; }
public IEnumerable<LandbfsladdraddrcdoQuery> landbfsladdraddrcdoQuery { get; set; }
}
视图具有以下标记
@model SearchResultsModel
@{
ViewBag.Title = "Search";
Layout = "~/Views/Shared/_Layout.cshtml";
SearchFormViewModel searchFormViewModel = new SearchFormViewModel();
}
@Html.Partial("_SearchForm", searchFormViewModel)
<h4>Search Results</h4>
@if (ViewBag.Source == "1")
{
@Html.Partial("_CentraladdrcdoQuery", Model.centraladdrcdoQuery)
}
@if (ViewBag.Source == "2")
{
@Html.Partial("_LandbfsladdraddrcdoQuery", Model.landbfsladdraddrcdoQuery)
}
答案 1 :(得分:0)
正如您所提到的,您将带来搜索结果。虽然结果可能来自不同的表格,但我认为您应该将新模型作为SearchResult&amp;无论搜索结果来自哪个表,SearchResult模型都应具有公共字段。与结果标题一样,描述....