我從控制器傳遞對象的佈局是這樣的:在MVC中傳遞對象佈局5
public ActionResult MyProfile()
{
var roles = new List<int?>();
User.Roles.ForEach(r => roles.Add(r.ID));
return View(new ProfileModel()
{
LoginUser = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(string.IsNullOrEmpty(User.LastName) ? string.Empty : User.LastName.ToLower()),
UserRole = new List<int?>(roles)
});
}
public class ModelBase {
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string LoginUser { get; set; }
public List<int?> UserRole { get; set; }
public ModelBase() {
UserRole = new List<int?>();
}
}
public class ProfileModel : ModelBase { }
這工作,但我必須返回一個視圖,因爲當我所有的控制器動作做到這一點我需要所有視圖中的角色和登錄用戶。
有沒有辦法讓我這樣做一次,而不必在我的行爲中重複?
我嘗試將它添加到基本控制器,但ROLES和LOGINUSER始終爲空。
我知道這已經在SO上解決了很多,但他們都在做某件事。
謝謝。
你是說你想渲染用戶的細節和他們在每個視圖中的角色? –
是的,角色是用於填充導航。 – capiono
更好的方法是使用'[ChildActionOnly]'方法返回導航html的局部視圖,然後在佈局中使用'@ Html.Action()'調用該方法並渲染局部視圖你的佈局。 –