【问题标题】:checkbox values true or false alternative to string in cshtml复选框值 true 或 false 替代 cshtml 中的字符串
【发布时间】:2013-02-20 00:30:36
【问题描述】:

是否有另一种更“正确”的方法可以将复选框的值转换为布尔值。

我的cshtml代码:

@{
    Page.Title = "";
    Layout = "~/_Layout.cshtml";

    bool checked = false;

    if(isPost)
    {
        if(Request["chkbx"] == "on")
        {
            checked = true;
        }
    }
}

<div>
    <input type="checkbox" name="chkbx" />
</div>

【问题讨论】:

  • 是的,创建一个强类型视图并让模型绑定来完成。
  • 我可以说服你给我一个例子吗?
  • 这实际上是一个坏例子,一秒钟,谷歌搜索更多。编辑:odetocode.com/blogs/scott/archive/2009/04/27/…
  • 问题是您在视图中做了很多事情(例如检查是否已发布)并获取了您不应该的复选框的请求值。你需要在你的控制器中做这些事情。我建议拿起一本 mvc 书

标签: c# html razor checkbox


【解决方案1】:

在 ASP.NET MVC 中,Razor 视图通常不应该与 Request 之类的东西混淆。

ControllerRequest 创建一个ViewModel 对象(最好使用ModelBinding),然后将创建的对象传递给View

但是,如果您不愿意将路线更改为 ViewModel 路径:

您可以为 Razor 使用内置的 HTML 助手: @Html.CheckBox("chkbx", checked)

或者,如果您更喜欢手动编写 HTML 元素,这可能看起来更简洁: &lt;input type="checkbox" name="chkbx" @(checked ? "checked" : "") /&gt;

【讨论】:

    猜你喜欢
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    • 2015-02-26
    • 2014-06-03
    相关资源
    最近更新 更多