c# - 在 ASP.NET MVC 操作中获取复选框值

标签 c# asp.net asp.net-mvc

我正在开发 ASP.NET MVC 应用程序。我的表单模型如下所示:

public class ViewModel
{
    public bool IsActive { get; set; }
}

在我的表单中,我有以下 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>

当我发布表单时,模型中的 IsActive 值始终为 false。但是,模型中的 Name 属性有一个值。我通过在下面设置断点来测试它:

[HttpPost]
public ActionResult MyAction(ViewModel model)
{
    // model.IsActive always is false
}

为什么未设置 Checkbox 值?

我应该怎么做才能解决这个问题?

最佳答案

您没有在复选框或其关联的隐藏输入中设置 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>

旁注:您是否有任何理由不使用 @Html.CheckBoxFor(m => m.IsActive) 来生成正确的 html?

关于c# - 在 ASP.NET MVC 操作中获取复选框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32794776/

相关文章:

c# - asp.net 从其他本地资源读取

asp.net - 使用 jQuery 将跨域 JSON 发布到 ASP.NET

c# - pipeline.Fit() 函数在 .Net Web 应用程序中不起作用

javascript - 在 javascript 代码中使用 ASP.net 模型。除了使用 <text> 之外还有其他方法吗?

asp.net-mvc - ASP.NET MVC 应用程序有时需要很长时间才能响应

asp.net-mvc - 在集线器、SignalR 之外获取 connectionId

C# Float 不作为精确值插入

c# - 在 C# 中向服务器发送/接收数据

c# - Visual Studio 2012 不创建新的 SQL 表

javascript - 在asp.net中调用javascript返回值到代码页