我有這樣一個模型:從下拉式在查看並回傳給控制器
public class UserProfile
{
public Guid ID { get; set; }
public string DisplayName { get; set; }
public Language PreferredLang { get; set; }
}
public class Language
{
[Key]
public int LanguageID { get; set; }
public string LanguageCode { get; set; }
public string DisplayName { get; set; }
}
而且我希望能夠從下拉列表中選擇首選語言。
在控制器中,我得到語言列表並將其放入ViewBag中。鑑於我加載此列表。然後我想保存選擇。
我的控制器:
public ActionResult EditProfile()
{
List<Language> langauges = Logic.GetAllLanguages();
ViewBag.Languages = langauges;
UserProfile profile = GetUserProfile();
return View(profile);
}
一個我的觀點:
@using (Html.BeginForm()) {
@Html.EditorFor(model => model.DisplayName)
<div class="display-field">
@Html.DropDownListFor(x => x.PreferredLang, new SelectList(ViewBag.Languages, "LanguageID", "DisplayName") as SelectList)
</div>
<input type="submit" value="Save" />
}
當用戶點擊 「保存」,傳遞給控制器element
對象有DisplayName
,但PreferredLang
始終爲空。 如何將語言傳遞迴控制器?
[HttpPost]
public ActionResult EditProfile(UserProfile element)
{
//save element
}
MVC有本地化的大力支持,沒有必要寫你自己的語言選擇的東西:http://www.hanselman.com/blog/GlobalizationInternationalizationAndLocalizationInASPNETMVC3JavaScriptAndJQueryPart1.aspx HTTP:/ /geekswithblogs.net/shaunxu/archive/2010/05/06/localization-in-asp.net-mvc-ndash-3-days-investigation-1-day.aspx – MrFox
這不是關於本地化,該類可以是其他任何東西。 – Tschareck