我对单选按钮和支票有疑问。
首先,在我的观点中,我有一个带登录值的文本框。在这个文本框和提交按钮之间,我有5个单选按钮。这些rb中的每一个都在我的ViewModel中引用了一个属性。
所以这是代码。 我的ViewModel具有以下属性:
public class DeleteUAInfosViewModel
{
[Display(Name = "UserAccountDeleteInfos", ResourceType = typeof(UserAccountResources))]
public string UserLeave
{
get { return UserAccountResources.UserLeave; }
}
[Display(Name = "UserAccountDeleteInfos", ResourceType = typeof(UserAccountResources))]
public string UserTransfer
{
get { return UserAccountResources.UserTransfer; }
}
[Display(Name = "UserAccountDeleteInfos", ResourceType = typeof(UserAccountResources))]
public string UserDetachment
{
get { return UserAccountResources.UserDetachment; }
}
[Display(Name = "UserAccountDeleteInfos", ResourceType = typeof(UserAccountResources))]
public string UserRetirement
{
get { return UserAccountResources.UserRetirement; }
}
[Display(Name = "UserAccountDeleteInfos", ResourceType = typeof(UserAccountResources))]
public string UserStatus
{
get { return UserAccountResources.UserStatus; }
}
}
我在IndexViewModel中链接DeleteUAInfosViewModel:
public class IndexViewModel
{
[Display(Name = "DeleteUAInfos", ResourceType = typeof(UserAccountResources))]
public DeleteUAInfosViewModel DeleteUAInfosGroup { get; set; }
public IndexViewModel()
{
DeleteUAInfosGroup = new DeleteUAInfosViewModel();
}
...
}
我的部分视图与rb的声明:
@model MyPath.UserAccount.DeleteUAInfosViewModel
<div id="UserDeleteInfosField">
<p>
@Html.RadioButton("RbDeleteGroup", Model.UserLeave)
@UserAccountResources.UserLeave
@Html.HiddenFor(x => x.UserLeave)
</p>
<br />
<p>
@Html.RadioButton("RbDeleteGroup", Model.UserTransfer)
@UserAccountResources.UserTransfer
@Html.HiddenFor(x => x.UserTransfer)
</p>
<br />
<p>
@Html.RadioButton("RbDeleteGroup", Model.UserDetachment)
@UserAccountResources.UserDetachment
@Html.HiddenFor(x => x.UserDetachment)
</p>
<br />
<p>
@Html.RadioButton("RbDeleteGroup", Model.UserRetirement)
@UserAccountResources.UserRetirement
@Html.HiddenFor(x => x.UserRetirement)
</p>
<br />
<p>
@Html.RadioButton("RbDeleteGroup", Model.UserStatus)
@UserAccountResources.UserStatus
@Html.HiddenFor(x => x.UserStatus)
</p>
</div>
我用另一个视图在另一个视图中调用此局部视图:
@Html.Partial("_DeleteUAInfos", Model.DeleteUAInfosGroup)
目前我检查了登录是否为空或是空。
但现在我需要检查单选按钮。 示例:我想验证登录是否正确并且至少检查了一个rb(并检索了该值)。
换句话说:我想整理单选按钮的检查和登录值的检查(在我的情况下,登录部分已经完成)。
那么你可以帮助我吗?
提前致谢!
Ars_n
答案 0 :(得分:2)
你所做的只是创建一个非常长的布尔表达式,所以在函数中验证你的登录添加
if(!radio1&&!radio2...&&!radion)
{
ModelState.AddModelError("HTMLModelComponentYouWantToValidate", "ErrorMessage");
}
然后再继续添加
if(ModelState.IsValid){...}
else{ return View();}
答案 1 :(得分:0)
最后,我完全改变了使用Enumerations的方法。 所以,我按照以下步骤操作:
1)在ViewModel中声明公共枚举(其中包含&#34; UserLeave&#34;,&#34; UserTransfer&#34;等等。)
2)使用属性引用枚举(在ViewModel中):public MyEnum myEnum{ get; set; }
3)在视图中调用此枚举:@Html.RadioButtonFor(m => m.myEnum, MyEnum.UserLeave);
对每个单选按钮重复此操作。
4)现在,我可以直接在我的ViewModel中执行检查(单选按钮是否已选中)..
所以我希望它会帮助那些遇到同样问题的人。
此致
Ars_n