Данные, используемые несколькими пользовательскими контролями - PullRequest
1 голос
/ 30 августа 2011

У меня есть страница с несколькими различными пользовательскими контролями.Все они запускают следующий код:

var member = System.Web.Security.Membership.GetUser();
MemberProfile mp = MemberProfile.GetUserProfile(member.UserName);
string affilID = mp.GetPropertyValue("aID").ToString();

Я хотел бы получить это значение один раз и сохранить его для использования со всеми элементами управления.Я не уверен, где в жизненном цикле мне нужно сделать это, чтобы обеспечить его доступность для всех элементов управления при их визуализации.Есть предложения?

Спасибо!

Ответы [ 2 ]

1 голос
/ 30 августа 2011

Почему бы не сделать это в событии Page_Load с сеансом?Может быть, что-то вроде этого (C #):

MembershipUser member;
MemberProfile mp;
string affilID; 

protected void Page_Load(object sender, EventArgs e)
{

    if (Session["member"] != null)
    {
        member = (MembershipUser)Session["member"];
    }
    else
    {
        member = System.Web.Security.Membership.GetUser();
    }

    if (Session["mp"] != null)
    {
        mp = (MemberProfile)Session["mp"];
    }
    else
    {
        mp = MemberProfile.GetUserProfile(member.UserName);
    }

    if (Session["affilID"] != null)
    {
        affilID = (string)Session["affilID"];
    }
    else
    {
        affilID = mp.GetPropertyValue("aID").ToString();
    }
}
0 голосов
/ 30 августа 2011

Если это все на одной странице, если она находится вне подпрограммы, вы сможете использовать ее в любой подпрограмме.Или я что-то упустил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...