Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在同一RadioButton()列表中使用多个模型参数?_C#_Asp.net Mvc_Razor - Fatal编程技术网

C# 如何在同一RadioButton()列表中使用多个模型参数?

C# 如何在同一RadioButton()列表中使用多个模型参数?,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,有没有办法在html上的同一个单选按钮组中使用多个模型属性而不破坏名称字段(Razor在提交时使用该字段获取唯一字段) 我尝试了以下方法: <h2>Store or Corporate</h2> <div class="store-selection-buttons"> <label>Corporate</label> @Html.RadioButtonFor(model

有没有办法在html上的同一个单选按钮组中使用多个模型属性而不破坏名称字段(Razor在提交时使用该字段获取唯一字段)

我尝试了以下方法:

<h2>Store or Corporate</h2>
        <div class="store-selection-buttons">
            <label>Corporate</label>
            @Html.RadioButtonFor(model => model.JobPostStatus.IsCorporate, "true")
            <label>All Stores</label>
            @Html.RadioButtonFor(model => model.JobPostStatus.IsAllStores, "true")
            <label>Select Stores</label>
            @Html.RadioButton("Store Selection", false, new { @id = "select-stores" })
            //This one does other selection work in jquery for individual stores (List<int>)
        </div>
单选按钮组的默认值为,例如

  <input type="radio" name="gender" value="male"> Male<br>
  <input type="radio" name="gender" value="female"> Female<br>
  <input type="radio" name="gender" value="other"> Other
我们需要名称相同,以便他们作为一个群体一起行动 我们需要传入模型中的值,以便它正确显示 您可以通过以下方式接近:

@Html.RadioButton("JobStatus", @Model.JobPostStatus.IsCorporate, new { @id = "JobPostStatus.IsCorporate" }) Corprate<br />
@Html.RadioButton("JobStatus", @Model.JobPostStatus.IsAllStores, new { @id = "JobPostStatus.IsAllStores" }) All<br />
@Html.RadioButton("JobStatus", "false") Select<br />

它传递了这些要求,但您正试图将单个HTML构造单选按钮组绑定到多个模型属性。如果您打算将此内容发回,您将遇到一些问题,在这种情况下,您的代码会更好,并使用JavaScript在中构建psuedo单选按钮组行为。

您试图在模型中使用两个不同的属性:

异corporate 伊索尔商店 该模型表明两者可以同时为真或假。由于一次只能选择一个属性,因此实际上应该将它们分组到单个属性中。如果你报答两个分开的,你可以附加另一个隐藏的,然后两者都消失,但很明显,如果两者都是真的,你会反抗什么?哪一个应该保持选中状态

不过,您可以通过几种方法实现这一点,最简单的方法是:

<input type="hidden" value='@Html.DisplayFor(business => model.IsBusiness)' />
<input type="radio" name="businessType" value="true">Corporate</input>
<input type="radio" name="businessType" value="false">Store</input>
然后您可以简单地让jQuery on document.load触发更改以选择适当的值


另一种选择是,如果您像我提到的那样转换为单个值,您可以遵循此堆栈溢出。

在研究它之后,Razor需要单选按钮的名称是不同的,以便成功回发,但单选按钮本身需要相同的名称才能成功链接

目前没有使用Razor语法解决这个问题的方法,最好的替代方法是使用带有if语句的复选框来关闭所有其他复选框


通过创建自定义jquery验证来解决此问题,如果其他3个复选框中的任何一个处于启用状态,其余复选框被取消选中。

我不理解这句话,但是Razor只允许radiobutton用于参数作为组合功能?我知道如何将参数链接到radiobutton的唯一方法是radiobutton,但是您可以将这些单选按钮链接在一起,由于名称是,那么参数nameSingle值在本例中不起作用,因此选择与确定的是/否略有不同。它是列表类型选项中的YesAll、NoAll、YesSome。转换为简单的布尔值或枚举值在我的实例中不起作用。您无法调整和MVVM以将此实例转换为单个参数?如果不在视图中添加核心逻辑,目前无法将其压缩为单个参数。我无法更改其他两个的名称,而不会丢失表单提交的属性更改您可以控制其id的静态列表的名称。我该如何使其他两个列表匹配,以便所有3个列表都可以是一个列表?检查HTML时,其他两个列表生成的id/名称是什么?Names=JobPostStatus.IsAllStores,JobPostStatus.IsCorporate id=JobPostStatus\u IsCorporate,JobPostStatus\u IsAllStores