gpt4 book ai didi

asp.net-mvc - asp.net mvc3 基于模型检查单选按钮

转载 作者:行者123 更新时间:2023-12-02 09:15:56 26 4
gpt4 key购买 nike

我有一个看似简单的任务,即根据模型的 bool 值设置“选中”单选按钮。我的模型“IsSDPDonor”中有一个 bool 值,我想将它用于是/否单选按钮。如果“IsSDPDonor”为 true,则应检查“Yes”单选按钮;如果为 false,则应检查“No”单选按钮。我尝试使用下面的代码,但它总是检查“否”单选按钮。

 @Html.Label("Would You Like to Donate Platelets (SDP)") : 
@Html.RadioButtonFor(m => m.Donor.IsSDPDonor, true, new {@checked = Model.Donor.IsSDPDonor ? "checked" : ""}) Yes
@Html.RadioButtonFor(m => m.Donor.IsSDPDonor, false, new { @checked = !Model.Donor.IsSDPDonor ? "checked" : "" }) No

我有点沮丧,所以我想我宁愿接受一些帮助。基本上,HTML 语法表示仅放置“Checked”属性,而不添加任何值来检查单选按钮。我想知道如何使用 MVC3 razor 语法来做到这一点。

最佳答案

在代码块中创建 HTML 选项,如果不应检查按钮,则将它们保留为空,然后在帮助程序中使用正确的变量。

@{
var yesOptions = Model.Donor.IsSDPDonor ? new { @checked = "checked" } : null;
var noOptions = Model.Donor.IsSDPDonor ? null : new { @checked = "checked" };
}
@Html.Label("Would You Like to Donate Platelets (SDP)") :
@Html.RadioButtonFor(m => m.Donor.IsSDPDonor, true, yesOptions ) Yes
@Html.RadioButtonFor(m => m.Donor.IsSDPDonor, false, noOptions ) No

编辑:查看源代码后,在我看来,应该根据模型的值设置此属性。您是否尝试过完全省略 HTML 属性?

case InputType.Radio:
if (!usedModelState) {
string modelStateValue = htmlHelper.GetModelStateValue(name, typeof(string)) as string;
if (modelStateValue != null) {
isChecked = String.Equals(modelStateValue, valueParameter, StringComparison.Ordinal);
usedModelState = true;
}
}
if (!usedModelState && useViewData) {
isChecked = htmlHelper.EvalBoolean(name);
}
if (isChecked) {
tagBuilder.MergeAttribute("checked", "checked");
}
tagBuilder.MergeAttribute("value", valueParameter, isExplicitValue);
break;

关于asp.net-mvc - asp.net mvc3 基于模型检查单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8111942/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com