سؤال

في MVC2 لقد استخدمت Page.User.Identity.Name باستخدام <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>

كيف يمكنني استخدام الشيء نفسه في MVC3؟

هل كانت مفيدة؟

المحلول

يمكنك دائمًا فعل شيء مثل:

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

لكن لا.

عادة لا ينبغي أن تحاول طريقة العرض إحضار هذه المعلومات. هناك لعرض أي معلومات يتم تمريرها بواسطة وحدة التحكم. يجب أن يتم كتابتها بقوة إلى فئة نموذجية يتم تمريرها بواسطة إجراء وحدة تحكم.

لذلك في إجراء وحدة التحكم مما يجعل هذا الرأي:

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

الآن داخل العرض ، لا تتردد في استخدام هذه المعلومات:

@Model.Username

نصائح أخرى

MVC 2

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

MVC 3

@this.User.Identity.Name

كان لي نفس المشكلة. انا إستعملت هذا البرنامج التعليمي لحل هذه القضية.

باختصار ، في رأيك ، ضع هذا الرمز:

@Context.User.Identity.Name

فقط تأكد من تعيين المشروع للمصادقة باستخدام Windows.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top