C# 选中(或未选中)复选框时更改ViewModel
伙计们 我有这个模型:C# 选中(或未选中)复选框时更改ViewModel,c#,asp.net-mvc-3,viewmodel,C#,Asp.net Mvc 3,Viewmodel,伙计们 我有这个模型: public class ItemViewModel { [Display(Name="Has serie number?")] public bool HasSerieNumber { get; set; } public string SerieNumber { get; set; } } 我有这样的看法: @Html.LabelFor(item => item.HasSerieNumber); @Html.CheckBoxFor(it
public class ItemViewModel {
[Display(Name="Has serie number?")]
public bool HasSerieNumber { get; set; }
public string SerieNumber { get; set; }
}
我有这样的看法:
@Html.LabelFor(item => item.HasSerieNumber);
@Html.CheckBoxFor(item => item.HasSerieNumber);
@Html.TextBoxFor(item => item.SerieNumber);
这个JS代码:
$('#HasSerieNumber').click(function() {
if ($(this).is(':checked')) {
$('#SerieNumber').show();
} else {
$('#SerieNumber').hide();
}
});
嗯,当我选中HasSerieNumber复选框时,会显示SerieNumber文本框。
当我在视图中检查项目时,是否有方法激发/更改HasSerieNumber属性?
这个想法是:当我选中复选框时,属性的值将会改变,我可以通过这个属性控制文本框的可见性
谢谢 因为
HasSerieNumber
属性绑定到复选框,所以您的代码已经这样做了。选中该复选框时,HasSerieNumber
将作为true
发送到相应的控制器操作,未选中时将为false
。单击复选框时,您还可以有效地切换相应文本框的可见性
因此,只需将其包装成一个表单:
@using (Html.BeginForm("SomeAction", "SomeController"))
{
@Html.LabelFor(item => item.HasSerieNumber)
@Html.CheckBoxFor(item => item.HasSerieNumber)
@Html.TextBoxFor(item => item.SerieNumber)
<button type="submit">OK</button>
}
由于默认的模型绑定器,
HasSerieNumber
和SerieNumber
属性将包含这些值,因此模型将与请求值正确绑定。感谢您的回答,Darin。我知道这一点。我的疑问是:有没有一种方法可以在我点击复选框时触发一些控制器方法?我的代码工作得很好,我只是想知道我是否可以在单击复选框时触发一些控制器方法。谢谢
[HttpPost]
public ActionResult SomeAction(ItemViewModel model)
{
...
}