我是MVC的新手,沒有找到將類型模型返回到視圖的正確方法的示例。我需要創建一個視圖,以允許經過身份驗證的用戶編輯他們的一些配置文件。MVC - 爲編輯配置文件從控制器返回模型
作爲測試,我創建了一個控制器操作,返回一個ApplicationUser模型和查看頁面,該頁面在表單字段中顯示該配置文件。這有效,但它包含所有的用戶配置文件,這不是我想要的。爲了測試我寫了下面:
Public ActionResult EditProfile()
{
ApplicationUser user = UserManager.FindById(User.Identity.GetUserId());
return View(user)
}
當然,這樣做的工作,我知道我可以顯示任何我的看法一樣,雖然我不知道,如果是將返回所有的最佳實踐用戶的個人資料到視圖時,我只需要允許編輯他們的一些設置。
因此,我創建了一個新的ViewModel,只有需要的字段和基於該模型的新視圖。它的工作原理,但我仍然覺得我做得不好。在控制器操作中,我這樣做了:
public ActionResult EditProfile()
{
ApplicationUser user = UserManager.FindById(User.Identity.GetUserId());
EditProfileViewModel model = new EditProfileViewModel();
model.Email = user.Email;
model.Company = user.Company;
model.Name = user.Name;
model.PhoneNumber = user.PhoneNumber;
model.CountryCode = user.CountryCode;
model.StateProvince = user.StateProvince;
model.Language = user.Language;
model.StateProvinceCode = user.StateProvinceCode;
return View(model);
}
這似乎沒有必要和可怕的維護。我很抱歉提出這樣一個基本問題。我誠實地搜索了'網絡的例子,我知道他們在那裏,但我沒有找到我覺得適用於我的問題。
順便說一句,控制器裝飾着[授權],所以我認爲這個動作/視圖只能由經過驗證的用戶訪問。
如果有人能夠向我展示填充模型並將其傳遞給控制器的正確方法示例,我將更好地理解。似乎這應該能夠在幾行代碼中完成。
將視圖模型中的構造函數放入接收域模型。更容易維護。新的EditProfileViewModel(用戶); – gnome