我有一个自定义模型绑定器,它检查身份验证 cookie 并返回值。
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);
}
但是,我想在我的母版页中使用它,因为一旦用户登录,我想在每个页面的顶部显示他们的信息。我尝试了一些东西,无法让它工作
@Html.RenderPartial("LoginPartial", ???model here??)