我有这个自定义约定:
public class RegionLanguagePageRouteModelConvention : IPageRouteModelConvention
{
public void Apply(PageRouteModel model)
{
foreach (var selector in model.Selectors.ToList())
{
if (selector.AttributeRouteModel.Template == "Index")
{
model.Selectors.Remove(selector);
}
if (selector.AttributeRouteModel.Template == "")
{
model.Selectors.Add(new SelectorModel
{
AttributeRouteModel = new AttributeRouteModel
{
Template = AttributeRouteModel.CombineTemplates("{regionParam1}/{languageParam2}-{regionParam3}/{slugParam4}", selector.AttributeRouteModel.Template)
}
});
}
}
}
}
现在,当我在RouteData.Values
的{{1}}中检查OnGet()
的{{1}}时,IndexModel
集合中就有一个全新的键/值对,这是我以前从未见过的: / p>
RouteData.Values
它是怎么到达那里的?我期待中:
Key: "page"
Value: "/Index"
..因为我在自定义约定类中删除了“索引”模板,而只留下了“”模板。
另外,当在Key: ""
Value: ""
循环中设置RegionLanguagePageRouteModelConvention
的断点时,在任何页面中都看不到“页面”(键)/“索引”(值)模板/选择器。