我正在为我的练习制作一个简单的mvc项目。但是我不知道如何为模型的一个属性放置多个复选框。
例如
public class TestVeiwModel
{
public string LanguagePreference {get; set;}
}
在视图中,我想为该LanguagePreference属性放置3个复选框。 英语,法语和其他 因此,用户只能选择其中一个复选框,也可以不选择任何一个。 如果选择英语,则LanguagePreference将为英语。除了可以取消选择外,这的行为与单选按钮非常相似。但是我希望这看起来像复选框。
我尝试使用@ Html.CheckBoxFor和@ Html.CheckBox帮助器,但无法完成这项工作。
如果有人能帮助我,我将非常感谢。
答案 0 :(得分:0)
在这种情况下,您应该使用单选按钮,但是如果您需要这种复选框的行为,则可以使用jquery。 您还需要一个属性来选择哪个属性。
public class TestVeiwModel
{
public string LanguageName {get; set;}
public bool IsSelected {get; set;}
}
之后,将您的主题列表绑定并传递给这样的视图。
@model List<yourproejctName.modelNameSpace.TestVeiwModel> //Path of your model
for (int i = 0; i < Model.Count; i++)
{
@Html.CheckBoxFor(r => Model[i].IsSelected, htmlAttributes: new { @class = "chkBoxClass", onchange = "fun_Onchange(this)" })
@Html.DisplayFor(r => Model.LanguageName)
}
并且需要编写jquery函数:-
function fun_Onchange(evt)
{
if($(evt).is(':checked')){
$('.chkBoxClass').prop('checked', false);
$(evt).prop('checked', true);
}
else{
$('.chkBoxClass').prop('checked', false);
}
}
答案 1 :(得分:0)
为诸如此类的选项写一个枚举
public enum LanguageOptionSelected
{
English= 0,
French= 1,
Other= 2
}
并在模型中编写以下代码:
public LanguageOptionSelected? Option { get; set; }