你是不是設置了單選按鈕value
屬性值。如果他們沒有value
,則說明「發佈」已發佈,並且在您的控制器方法中,您的模型將與gender = "on"
綁定。當您返回視圖時,您的單選按鈕均不匹配"on"
,因此沒有選中任何一個。
更改您的視圖爲單選按鈕
<label>
@Html.RadioButtonFor(m => m.gender, "Male", new { id = "" })
<span>Male</span>
</label>
<label>
@Html.RadioButtonFor(m => m.gender, "Female", new { id = "" })
<span>Female</span>
</label>
注意<label>
元素意味着用戶可以在相關文本中單擊選擇按鈕添加一個值,new { id = "" }
刪除id
屬性,否則將正在創建無效的html(重複id
屬性)。
此外,你應該考慮使用enum
的財產,而不是string
public enum Gender
{
Male,
Female
}
所以屬性是
public Gender Gender { get; set; }
,並在視圖中(假設你已經包括了using語句枚舉)
<label>
@Html.RadioButtonFor(m => m.Gender, Gender.Male, new { id = "" })
<span>@Gender.Male</span>
</label>
link to specification(單選按鈕和複選框)
默認/上
在獲取時,如果該元素有一個值屬性,它必須返回該屬性的值;否則,它必須返回字符串「on」。在設置時,它必須將元素的值屬性設置爲新值。
您沒有爲單選按鈕設置任何值。什麼是typeof屬性''gender'('string'或'enum')以及可能的值是什麼(只是「男性」和「女性」)? –
這是字符串和奇怪的是,現在的價值是在我離開後,在Visual Studio上設置的。 –