#css #asp.net-core #model-view-controller #razor #bootstrap-4
#css #asp.net-core #модель-вид-контроллер #razor #bootstrap-4
Вопрос:
Я использую довольно отличный admin_tlte для своей панели мониторинга, однако у меня возникла небольшая проблема со стилем выхода из системы, поскольку это должна быть форма в asp.net ядро mvc.
Есть идеи, как можно было бы использовать привязочный тег normal a, тег, который я пробовал использовать asp-controller, но он не вывел меня должным образом, он просто привел меня на мою домашнюю страницу.
Это должно больше походить на ссылку setup без влияния кнопки вокруг нее.
В настоящее время я использую следующий код
<div class="dropdown-menu dropdown-menu-lg dropdown-menu-right">
<div class="dropdown-divider"></div>
<a asp-action="Setup" asp-controller="Admin" asp-route-id="1" class="dropdown-item">
<i class="fas fa-user mr-2"></i> Setups</a>
<div class="dropdown-divider"></div>
@if (User.Identity.IsAuthenticated) {
<a href="#" class="dropdown-item">
<form asp-controller="Account" asp-action="Logout" method="post" id="logoutForm">
<i class="fas fa fa-sign-in-alt mr-2"></i>
<button type="submit" class="nav-link">Sign out</button>
</form>
</a>
} else {
<a asp-area="Identity" asp-page="/Account/Login" class="dropdown-item dropdown-footer fa fa-sign-in-alt">Login</a>
<a asp-area="Identity" asp-page="/Account/Register" class="dropdown-item dropdown-footer">Register</a>
}
</div>
В настоящее время это выглядит следующим образом.
Ответ №1:
Вы помещаете форму как скрытую и запускаете JavaScript в теге привязки, чтобы имитировать отправку формы.
<form class="d-none" method="post" id="logoutForm
asp-controller="Account" asp-action="Logout"">
</form>
<a href="javascript:document.getElementById('#logoutForm').submit()"
class="dropdown-item">
<i class="fas fa fa-sign-in-alt mr-2"></i>
Sign Out
</a>
Комментарии:
1. Спасибо, бади, что отлично сработал. Admintlte отличный, они использовали его несколько раз, именно о нем я постоянно забываю.
2. Да, я обычно создаю свою собственную тему для своих проектов .NET Core, и этот фрагмент очень удобен.
3. Я продолжаю создавать и использовать свои фрагменты, но у меня никогда не получается, вероятно, одна из функций, которую я недоиспользуюэто их страх потерять все это при повторном запуске
4. Он по-прежнему не встроен, по какой-то причине мы немного приблизились к краю
5. Извините, я ввел
dropdown-menu-item
вместоdropdown-item
. Я только что исправил это.
Ответ №2:
На самом деле я придумал другой подход, который использовал
@if (User.Identity.IsAuthenticated) {
<a href="#" class="dropdown-item">
<form asp-controller="Account" asp-action="Logout" method="post" id="logoutForm">
<i class="fas fa fa-sign-in-alt mr-2"></i>
<button type="submit" class="link">Sign out</button>
</form>
</a>
} else {
<a asp-area="Identity" asp-page="/Account/Login" class="dropdown-item dropdown-footer fa fa-sign-in-alt">Login</a>
<a asp-area="Identity" asp-page="/Account/Register" class="dropdown-item dropdown-footer">Register</a>
}
</div>
Тогда в моем css у меня просто есть следующее
button.link {
background: none !important;
border: none;
padding: 0 !important;
/*optional*/
font-family: arial, sans-serif;
/*input has OS specific font-family*/
color: black;
text-decoration: none;
cursor: pointer;
}