7

Possiedo un'applicazione MVC5 con un numero di aree diverse. Il progetto è stato creato con un collegamento Disconnessione nella barra di navigazione, ma se l'utente si trova in una delle aree, il collegamento è interrotto. Ho pensato di aggiungere:Il collegamento di disconnessione MVC5 non riesce da diverse aree

new { area = "" } 

sarebbe puntare il collegamento di nuovo al posto giusto ma o non lo fa o ho provato nel posto sbagliato. Codice come di seguito:

@using Microsoft.AspNet.Identity 
    @if (Request.IsAuthenticated) 
    { 
     using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" })) 
     { 
      @Html.AntiForgeryToken() 

      <ul class="nav navbar-nav navbar-right"> 
       <li> 
       @Html.ActionLink("Hello " + User.Identity.GetUserName(), "Manage", "Account", routeValues: null, htmlAttributes: new { title = "Manage" }) 
       </li> 
       <li><a href="javascript:document.getElementById('logoutForm').submit()">Log off</a></li> 
      </ul> 
     } 
    } 
    else 
    { 
     <ul class="nav navbar-nav navbar-right"> 
      <li>@Html.ActionLink("Log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" })</li> 
     </ul> 
    } 

Tutte le idee su ciò che deve essere cambiato per avere il lavoro Disconnetti indipendentemente da quale area l'utente è attualmente in?

+0

non riesco a vedere alcuna occorrenza del frammento di 'nuova {area = ""}' nel codice. Il posto giusto è all'interno dei parametri 'Html.BeginForm (...)' – thmshd

risposta

12

Il posto giusto è entro i parametri Html.BeginForm(...):

using (Html.BeginForm("LogOff", "Account", new { area = "" }, FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" })) 
+0

Ecco dove l'ho messo ma non ha avuto alcun effetto quindi l'ho estratto di nuovo come pensavo di dover essere sbagliato. – user3632714