在窗体集合 MVC 窗体中传递的复选框值



我有一个 FormCollection 被传回控制器,它被处理,但是,如果它为 true'true,false',则传递回的值,但如果它未选中,它只是'false'。我的字段使用 iChecks。

我正在构建的对象如下:

field.IsSelected = Convert.ToBoolean(form["Field.IsChecked"]);

获得正确值的最佳方法是什么?

我建议这样做:

form["Field.IsChecked"].Contains("true")它已经返回一个布尔值,因此您不必转换。

你可以去:

Convert.ToBoolean(form["Field.IsChecked"].Split(',').First());Convert.ToBoolean(form["Field.IsChecked"].Split(',')[0]);

为此目的最好使用模型绑定器,这是当今执行此操作的正确方法,您可以简单地将布尔属性添加到模型类中,然后使用 MVC 的复选框助手。

public class YourViewModel
{
public bool IsChecked { get; set; }
}

和您的操作方法:

public async Task<ActionResult> Index(YourViewModel viewModel)
{
field.IsSelected = viewModel.IsChecked;
}

你的看法是这样的:

@using (Html.BeginForm("Index", "YourController", FormMethod.Post)) 
{
<div>  
@Html.CheckBox("IsChecked")
</div>
<input type="submit" value="Submit" /> 
} 

这对我有用

Convert.ToBoolean(form["Field.IsChecked"].Split(',').First());

最新更新