我有以下型號:RadioButtonFor在編輯模版選擇值
public class Person
{
public string Name { get; set; }
public string Gender { get; set; }
}
我想默認的性別是女性,所以我設置了在行動:
public ActionResult Create()
{
var model = new Person { Gender = "F" }; // default is female
return View(model);
}
最後,視圖呈現的一切是這樣的:
@model Person
@using (Html.BeginForm())
{
@Html.EditorForModel()
<p><input type="submit" value="Create" /></p>
}
這一切都按預期工作。現在,讓我們說,而不是一個簡單的文本框,我想顯示性別作爲一個更直觀的一對單選按鈕。所以,我提出以下模板,並將其保存到共享/ EditorTemplates/Gender.cshtml:
@model string
@Html.RadioButtonFor(model => model, "F") Female
@Html.RadioButtonFor(model => model, "M") Male
最後我裝點性別與[UIHint("Gender")]
。
性別現在正確地單選按鈕,這是偉大的呈現,但...
問題
女不再是預先選定爲默認值,而是我結束了與兩個單選按鈕空白。我錯過了什麼嗎?
有趣的是,如果我將RadioButtonFor
從模板移動到視圖(更改model => model
到model => model.Gender
),則一切都按預期工作。我知道這是一個可行的解決方法,但這些模板化的助手是如此令人驚歎,令人上癮的便利,我寧願在讓他們走之前用盡所有可能。
+1和答案。工作過一種享受!這也不是那麼醜陋。如果有的話,我寧願忍受我的'@ Html.EditorForModels()'謝謝!:) –
我同意這不是醜陋的,而且工作的魅力。 – danludwig
我採納了這個想法並對其進行了擴展。我將一個List>傳遞給我的編輯器模板,作爲添加的ViewData,用於創建單選按鈕。我的模板看起來像這樣 –
davidbitton