【问题标题】:About binding a checkbox to string property in MVC viewmodel关于在 MVC 视图模型中将复选框绑定到字符串属性
【发布时间】:2012-11-21 04:31:50
【问题描述】:

在我的项目中,我在视图模型中有一个字符串字段,可以在表单中显示并回发到控制器。

但出于某种原因,我想显示一个复选框,并从用户输入中检索字符串“True”/“False”

我通过互联网搜索并找到了这个 How to render a model property of string type as checkbox in ASP.NET MVC 它利用编辑器模板并满足我的需求。

我的问题是如何实现这一点,因为在编辑器模板中,我只能看到它如何将字符串解释为复选框,但它从未解释或显示复选框值将如何绑定回字符串带有“True”/“False”的字段。

如果我想要“是”/“否”而不是“真”/“假”,我应该怎么做,我需要做任何转换器来将复选框解析为字符串吗?

对不起,我英语不好,缺乏 mvc 知识,我刚开始 MVC 和 web 开发几天。

更新: 1. 我使用 ViewModel 来绑定表单,所以我需要类似 Html.CheckBoxFor(x=>x.value) 而 x.value 是一个字符串,显然使用默认 CheckboxFor 是不可能的

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    我认为您要问的是如何将值保存回您的数据库,这更像是一个后端 C# 或 VB 问题。

    如您所知,当您在 HTML 页面上提交表单时,如果勾选了一个复选框,它的值将在 POST 参数中传递回服务器:

    前端 HTML:

    <input type="checkbox" name="theCheckBox" value="Yes" />
    

    Page_Load() 中的后端 C# 或类似

    if(Request.Form["theCheckBox"] == "Yes") {
        // save value "Yes" into database
    }
    

    请记住,如果未勾选复选框,则 Request.Form["theCheckBox"] 将为空

    【讨论】:

    • 感谢您的回答,但由于我绑定到 ViewModel,我希望将值绑定到具有字符串属性的字段。
    • 抱歉,马特,我粘贴了我之前引用的错误链接。看看这个,我在这个线程中使用了答案,但我不太了解绑定的幕后发生了什么。 stackoverflow.com/questions/7203583/…
    猜你喜欢
    • 2011-11-09
    • 2014-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 2013-04-28
    • 2010-12-02
    相关资源
    最近更新 更多