我有以下课程,我试图连接到单选按钮
public class ProductFilter
{
public bool Tubs { get; set; }
public bool Packs { get; set; }
}
我在视图上使用它
<div class="row col-lg-12" id="filters">
<div class="col-lg-4 text-right">
@Html.RadioButtonFor(model => model.Filter.Tubs, true) Tubs
</div>
<div class="col-lg-4"></div>
<div class="col-lg-4 text-left">
@Html.RadioButtonFor(model => model.Filter.Packs, true) Packs
</div>
</div>
现在当页面加载时,我选择了说桶,它会回发到控制器,我能够过滤,当页面重新加载时我选择它回发的包但两者的值是相同的,我希望浴缸是假的,因为我选择了包装,反之亦然,有人可以指出我做错了吗?
答案 0 :(得分:1)
您似乎希望根据“Tubs”或“Packs”的值进行过滤,在这种情况下,您的模型是错误的。您需要一个回发其中任何一个字符串的属性,例如
public string Filter { get; set; }
public List<string> FilterList { get; set; }
并在控制器中
model.FilterList = new List<string>() { "Tubs", "Packs" };
model.Filter = "Tubs"; // set default
并在视图中
@foreach(var option in Model.FilterList)
{
<label>
@Html.DropDownListFor(m => m.Filter, option, new { id = option })
<span>@option</span>
</label>
}
将生成2个name="Filter"
单选按钮,其值为value="Tubs"
和value="Packs"
,并且只允许选择一个。
或者,您可以使用枚举作为过滤器值。