Я использую формат .NET Core 2 "Razor Pages" для веб-приложения.Это позволяет вам определить, как сопоставить URL-адрес с именами переменных с помощью простой директивы вверху:
@page "{personId:int?}"
. Вышеприведенный пример, например, отображает URL-адрес /Person/Index/123
на функцию IndexModel.OnGetAsync(int personId)
, такчто personId
будет иметь значение 123.
Однако я заметил, что эти значения автоматически добавляются к любому URL-адресу, которым они могут быть, если на странице существует ссылка.Если я добавлю следующее на страницу указателя:
<a asp-page="/Person/Details">Details</a>
… фактический сгенерированный HTML-код будет выглядеть следующим образом:
<a href="/Person/Details/123">Details</a>
… это означает, что и на страницах указателя, и на странице сведений есть одна и та же директивавверху между ними неявно передается значение personId
.
Есть ли способ предотвратить это, так что asp-page="/Person/Details"
просто перенаправит на страницу сведений без какого-либо значения, переданного для personId