Frage

In MVC2 Ich habe gebrauchte Page.User.Identity.Name mit dem <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>

Wie kann ich das gleiche in MVC3 verwenden?

War es hilfreich?

Lösung

Sie können immer so etwas wie:

@Html.ViewContext.HttpContext.User.Identity.Name

aber nicht.

Normalerweise eine Ansicht sollte nicht versuchen, solche Informationen zu holen. Es ist dort zu Anzeige stehenden Informationen durch die Steuerung übergeben wird. Es sollte zu einer Modellklasse stark typisiert werden, die durch eine Controller-Aktion übergeben wird.

So in der Controller-Aktion macht diese Ansicht:

[Authorize]
public ActionResult Index()
{
    var model = new MyViewModel
    {
        Username = User.Identity.Name
    }
    return View(model);
}

Jetzt in der Ansicht fühlt sich frei, diese Informationen zu nutzen:

@Model.Username

Andere Tipps

MVC 2

<%: this.Page.User.Identity.Name %>

MVC 3

@this.User.Identity.Name

Ich hatte das gleiche Problem. Ich benutzen dieses Tutorial zur Lösung dieses Ausgabe.

Kurz gesagt, in Ihrer Meinung nach diesem Code setzen:

@Context.User.Identity.Name

So stellen Sie sicher, dass das Projekt mit Fenstern zum Authentifizieren eingestellt ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top