1

我有一个关于单选按钮和检查的问题。

所以首先,在我看来,我有一个带有登录值的文本框。在这个文本框和提交按钮之间,我有 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; }
    }
}

我在其中链接 DeleteUAInfosViewModel 的 IndexViewModel:

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

4

2 回答 2

2

那么你所做的只是创建一个非常长的布尔表达式,所以在验证你的登录的函数中添加

if(!radio1&&!radio2...&&!radion)
{
    ModelState.AddModelError("HTMLModelComponentYouWantToValidate", "ErrorMessage");
}

然后在继续添加之前

if(ModelState.IsValid){...}
else{ return View();}
于 2012-10-29T14:50:48.150 回答
0

最后我完全改变了做事的方式,使用枚举。所以,我按照以下步骤操作:

1) 在 ViewModel 中声明一个公共枚举(其中包含“UserLeave”、“UserTransfer”等)。

2) 使用属性引用枚举(在 ViewModel 中):public MyEnum myEnum{ get; set; }

3) 在视图中调用此枚举:@Html.RadioButtonFor(m => m.myEnum, MyEnum.UserLeave); 对每个单选按钮重复此操作。

4) 现在,我可以直接在我的 ViewModel 中执行检查(是否选中单选按钮)。

所以我希望它能帮助遇到同样问题的人..

问候,

Ars_n

于 2012-10-30T11:37:33.620 回答