部分视图和页面其余部分的视图模型不同
本文关键字:视图 模型 余部 | 更新日期: 2023-09-27 18:03:30
我想弄清楚如何在我的页面上使用完全不同的数据,而不是我在部分视图中使用的数据。
我有一个搜索栏在我的网站的顶部,顶部是一个部分视图,接受一个搜索视图模型和底部可以是任何东西(搜索结果,博客,完全不相关的东西)。
显然我不想"混合"视图模型,它们中的每一个都应该不知道其他(我不打算创建一个类来托管部分&每个不同页面的主视图模型)。
处理这种情况的合适方法是什么?
场景
User fills search on the top
=> if model is invalid, redisplay current page with errors (current page could for
example be today's wether, requiring WeatherViewModel for main content and
SearchViewModel for partial view)
=> else display result page (still need SearchViewModel for top banner
and then SearchResultsViewModel for the page)
到目前为止,我没有在网上找到任何帮助(我发现的都是有意义的场景,创建一个类来托管两个子类,因为它们是功能相关的,这不是这里的情况)。
我的SearchViewModel看起来像这样:
public class SearchViewModel
{
[Required]
public string StartCity { get; set; }
[Required]
public string EndCity { get; set; }
[Required]
public DateTime Date { get; set; }
[Required]
public SearchType Type { get; set; }
[Required]
public SearchTimeType TimeType { get; set; }
}
它只对应于顶部搜索,可以出现在任何页面上,而不管页面的其余部分使用什么视图模型。
你可以把搜索局部视图插入到@RenderBody()之外的模板中。
你的部分视图可能有一个窗体的动作,返回ShowResults视图