我想将布尔属性绑定到隐藏的输入控制器,但输出的html代码是错误
代码如下:
public class TestModel
{
public bool IsOk { get; set; }
public bool IsSuccess { get; set; }
}
public class HomeController : Controller
{
public ActionResult Index()
{
return View(new TestModel { IsOk = false, IsSuccess = true });
}
}
<h2>Index</h2>
<p>@Model.IsOk</p>
<p>
<input type="hidden" value="@Model.IsOk" />
</p>
<p>
<input type="hidden" value="@Model.IsSuccess" />
</p>
Html输出
<h2>Index</h2>
<p>False</p> //works
<p>
<input type="hidden" /> //where is value?
</p>
<p>
<input type="hidden" value="value" /> //wath's this?
</p>
但如果我使用ToString(),以上所有都能正常运行,那么我的错误是什么?
答案 0 :(得分:3)
Html属性需要字符串对象 它不会自动转换
所以你必须使用ToString()
答案 1 :(得分:3)
在HTML中,当您具有用作开/关或true / false开关的属性时,在属性为off / false时删除该属性,并在属性打开时添加与属性名称相同的值的属性/真正。 Razor为您提供了您已经体验过的功能。
也许您打算在视图中使用Html.HiddenFor
?
<p>
@Html.HiddenFor(m => m.IsOk)
</p>
<p>
@Html.HiddenFor(m => m.IsSuccess)
</p>
这将生成此HTML,您可以按照预期value="False"
和value="True"
:
<p>
<input data-val="true" data-val-required="The IsOk field is required."
id="IsOk" name="IsOk" type="hidden" value="False" />
</p>
<p>
<input data-val="true" data-val-required="The IsSuccess field is required."
id="IsSuccess" name="IsSuccess" type="hidden" value="True" />
</p>
此外,模型绑定器将能够往返查看模型属性。
答案 2 :(得分:-1)
请试一试。
$('#controlId').is(":checked");