【发布时间】:2011-06-24 15:49:46
【问题描述】:
我一直在尝试让简单的“是/否”单选按钮列表正常工作,但遇到了奇怪的问题。请参考我下面的代码sn-ps。
型号:
public bool isTimer { get; set; }
查看:
<div class="timer-selection">
<%: Html.Label("Timer") %>
<%= Html.RadioButton("isTimer", Model.isTimer) %> Yes
<%= Html.RadioButton("isTimer", !Model.isTimer) %> No
</div>
Javascript sn-p 设置 isTimer 值:
var timer = $(this).children("input.isTimer").val();
$('#UpdateButton_isTimer').val(timer);
控制器:
public virtual ActionResult CustomViewAdd(TimerViewModel model)
{
UITimerTable timer = new UITimerTable()
{
// My other properties
isTimer = model.NewIsTimer
};
if (ValidateAndSubmitChanges())
return RedirectToAction(MVC.Screen.CustomView(view.Id, false));
return View(model);
}
这成功地在我的数据库中添加了 isTimer 值,但有两件事我无法理解。
-
当我选择 YES 时,它会在数据库中插入 False 值,当我选择 NO 时,它会插入 TRUE!我可以像下面一样在 View 中交换 NOT(!) 运算符,但从逻辑上讲它是错误的。
<%= Html.RadioButton("isTimer", !Model.isTimer) %> Yes <%= Html.RadioButton("isTimer", Model.isTimer) %> No -
虽然我已经编写了 JAVASCript 以在我的表单再次加载(可见)时将值设置回来,但在我将其设置为 True 之后它总是将单选按钮值返回为 TRUE,并且无论何时加载,都会检查 YES 单选按钮。我从来没有检查过任何单选按钮!以下是我从 Chrom 检查元素时得到的 HTML 代码!不知道为什么 YES 单选按钮总是被设置。
<div class="timer-selection"> <label for="Timer">Timer</label> <input checked="checked" id="UpdateButton_isTimer" name="UpdateButton.isTimer" type="radio" value="True"> Yes <input id="UpdateButton_isTimer" name="UpdateButton.isTimer" type="radio" value="True"> No </div>
任何帮助将不胜感激!
谢谢。
【问题讨论】:
标签: asp.net-mvc-2 radiobuttonlist