#c# #asp.net-core #razor #routes #asp.net-core-mvc
#c# #asp.net-core #бритва #маршруты #asp.net-core-mvc
Вопрос:
Я установил свой шаблон на это:
endpoints.MapControllerRoute(
//name: "default",
//pattern: "{controller=Home}/{action=Index}/{id?}");
name: "custom",
pattern: "{company?}/{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
Когда я получаю доступ к URL-адресу в браузере, https://localhost:44387/123/Users
страница будет успешно отображаться, и значение 123
будет успешно восстановлено в контроллере:
public IActionResult Index(string company)
{
//code here
}
Как я могу получить доступ к этому через razor? перед тем, как я обновил шаблон, я использую только значение по умолчанию, подобное этому коду
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="123/Users" asp-action="Index">User</a>
</li>
<li class="nav-item">
<a class="nav-link text-dark" asp-area="" asp-controller="Clients" asp-action="Index">Client</a>
</li>
Я попытался добавить 123
к asp-controller
, но это не сработало.
Чего мне здесь не хватает?
Спасибо!
Комментарии:
1. Являются
<li>
ли теги в вашем вопросе фрагментомIndex.cshtml
Users
контроллера? Если ДА, просто удалите123
: useasp-controller="Users"
.2. @Jackdaw, если я удалю это, ничего не произойдет. страница просто перезагрузится
3. Но что, как вы ожидаете, произойдет, когда вы нажмете на эту ссылку
asp-controller="123/Users" asp-action="Index"
? Вы уже находитесь вIndex
поле зрения контроллераUsers
. Какая в этом польза?4. @Jackdaw, когда пользователь нажимает на эту кнопку, он переходит к like localhost:44387/123/Users , но 123 — это просто фиктивные данные, планирующие понравиться какому-то CompanyName после того, как я найду решение, отобразит индекс пользователей,
Ответ №1:
Вы можете использовать:
<li class="nav-item">
<a class="nav-link text-dark" href="123UsersIndex">User</a>
</li>
Или используйте вспомогательный метод HTML:
<li class="nav-item">
@Html.ActionLink("Users", "Index", "Users", routeValues: new { company = "123" }, htmlAttributes: new { @class= "nav-link text-dark" })
</li>
Для получения дополнительной информации см. htmlhelperlink Extensions .Метод ActionLink
Комментарии:
1. привет, сэр, это работает, но URL-адрес отличается localhost:44387/Users?company =123
2. мой плохой сэр, он работает! я просто забыл раскомментировать пользовательский код. Спасибо!