Стиль выхода в adminlte с использованием asp.net

#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;
}