Sae*_*aei 3 c# asp.net asp.net-mvc
我正在开发一个ASP.NET MVC应用程序.我的表单模型如下所示:
public class ViewModel
{
public bool IsActive { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在我的表单中,我有以下HTML.
<label class="checkbox pull-left">
<input type="checkbox" id="IsActive" name="IsActive" data-val="true" data-val-required="The IsActive field is required.">
<i></i>Active/Deactive
<input name="IsActive" type="hidden">
</label>
Run Code Online (Sandbox Code Playgroud)
当我发布表单时,模型中的IsActive值始终为false.但是,模型中的Name属性具有值.我通过在以下设置断点来测试这个:
[HttpPost]
public ActionResult MyAction(ViewModel model)
{
// model.IsActive always is false
}
Run Code Online (Sandbox Code Playgroud)
为什么Checkbox值没有设置?
我该怎么做才能解决这个问题?
小智 5
您没有value在复选框或其关联的隐藏输入中设置属性,因此不会发布任何值,并且您的属性值是其默认值(false).它需要
<label class="checkbox pull-left">
<input type="checkbox" id="IsActive" name="IsActive" value="true" ....>
<i></i>Active/Deactive
<input name="IsActive" type="hidden" value="false">
</label>
Run Code Online (Sandbox Code Playgroud)
旁注:您是否有任何理由不使用@Html.CheckBoxFor(m => m.IsActive)生成正确的HTML?
| 归档时间: |
|
| 查看次数: |
1509 次 |
| 最近记录: |