C# 如何在同一RadioButton()列表中使用多个模型参数?
有没有办法在html上的同一个单选按钮组中使用多个模型属性而不破坏名称字段(Razor在提交时使用该字段获取唯一字段) 我尝试了以下方法: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
<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