asp.net-core - 如何重用局部视图 - 带有局部视图和复杂 Model Core 3.1 的 Razor 页面
问题描述
我有一个相当复杂(并且可能不正确)的 Razor 页面,其中包含一组相当复杂的过滤器。过滤器是使用 Select2、开始和结束日期以及文本搜索的多项选择。这些的任意组合都可以用来过滤分页列表中的数据。如果我通过页面模型并假设部分类将接受相同的页面模型,它工作正常。如果我想与其他页面共享这个部分视图(包含所有过滤器控件),就会出现问题。我将如何通过模型?这里有更多细节..
AllWork.chstml.cs - 包含许多用于过滤器、页面大小等的公共字符串和列表。它还保留选定项目(用于回发和分页)以及分页列表等项目,它真的非常简单,我仅包含项目的片段,而不是 Get 或 Filter,因为这些不是问题。例子...
public class AllWorkModel : PageModel
{
public string NameSort { get; set; }
public string DateSort { get; set; }
[BindProperty(SupportsGet = true)]
public string StatusSort { get; set; }
public string CurrentFilter { get; set; }
public List<string> CurrentFilter1 { get; set; }
[BindProperty]
public List<string> ToolNumSelected { get; set; }
public IList<SelectListItem> _ToolNum { get; set; }
}
在 AllWork.cshtml 文件中,<partial name="_Filters" />
我尝试传入一个特定的模型来调用部分,但这对这种情况没有帮助。AllWork.cshtml @model 指令是这样的@model test_CORE.Pages.AllWorkModel
在我当前使用的部分页面 _Filters.cshtml 上@model test_CORE.Pages.AllWorkModel
,它运行良好。
我的问题再次是我如何调整它以便部分页面 _Filters.cshtml 可以在其他页面中使用?我需要一种集中式模型类型,但如何?初始页面加载数据来自 SQL 服务器。