7

Ich habe eine MVC5-Anwendung mit einer Reihe von verschiedenen Bereichen. Das Projekt wurde mit einem Link zum Abmelden in der Navigationsleiste erstellt. Wenn sich der Benutzer jedoch in einem der Bereiche befindet, ist die Verknüpfung unterbrochen. Ich dachte, fügte hinzu:MVC5 Abmelden Verbindung schlägt aus verschiedenen Bereichen

new { area = "" } 

den Link zurück an die richtige Stelle verweisen würde, aber es entweder nicht oder ich versuchte, es an der falschen Stelle. wie unten Code:

@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> 
    } 

Alle Ideen, was geändert werden muss um die Abmelde Arbeit unabhängig davon, was Gebiet des Benutzer ist zur Zeit?

+0

ich kein Auftreten des Snippets 'neu sehen {area = ""}' in Ihrem Code. Der richtige Platz ist innerhalb der 'Html.BeginForm (...)' Parameter – thmshd

Antwort

12

Der richtige Ort ist innerhalb der Html.BeginForm(...) Parameter:

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

Das ist, wo ich es setzte, aber es hatte keine Wirkung, also nahm ich es wieder heraus, während ich dachte, dass ich falsch sein muss. – user3632714