У меня есть это соглашение:
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
в OnGet()
на моем IndexModel
, в коллекции RouteData.Values
совершенно новая пара ключ / значение, которую я никогда не видел:
Key: "page"
Value: "/Index"
Как он туда попал? Я ожидал:
Key: ""
Value: ""
.. потому что я удалил шаблон «Index» в своем классе пользовательских соглашений и оставил только «».
Кроме того, при установке точки останова в RegionLanguagePageRouteModelConvention
во время итерации цикла foreach
я не вижу шаблон "page" (ключ) / "Index" (значение) ни на одной из страниц / селекторов.