我有一個自定義的模型綁定器,它檢查身份驗證cookie並返回值。如何將值傳遞給MVC3母版頁(_layout)?
public class UserDataModelBinder<T> : IModelBinder
{
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
if (controllerContext.RequestContext.HttpContext.Request.IsAuthenticated)
{
var cookie =
controllerContext.RequestContext.HttpContext.Request.Cookies[FormsAuthentication.FormsCookieName];
if (cookie == null)
return null;
var decrypted = FormsAuthentication.Decrypt(cookie.Value);
if (!string.IsNullOrWhiteSpace(decrypted.UserData))
return JsonSerializer.DeserializeFromString<T>(decrypted.UserData);
}
return null;
}
}
如果我需要使用它,我只需要將它傳遞給動作即可。一切正常。
public ActionResult Index(UserData userData)
{
AccountLoginWidgetVM model = new AccountLoginWidgetVM();
if (null != userData)
model.UserData = userData;
return View(userData);
}
不過,我想用它在我的母版頁,因爲一旦用戶登錄,我想展示自己在每個頁面頂端的信息。我嘗試了一些東西,coudln't得到它的工作
@Html.RenderPartial("LoginPartial", ???model here??)
您是否在視圖中包含了模型聲明? – Yasser 2012-07-31 12:24:57