2013-01-31 125 views
2

我有一个表单响应提交按钮。@剃须刀视图中的Html.CheckBoxFor问题?

我有一个复选框如下:

@Html.CheckBoxFor(m => m.CheckBoxValue) 

我怎样才能得到,如果选中YES否则没有最好的在我的模型串..

public bool CheckBoxValue { get; set; } OR 
    public string CheckBoxValue { get; set; } 

请帮助。

感谢

更新

这是要走的路。

@Html.CheckBoxFor(m => m.CheckBoxValue) 

    public bool CheckBoxValue { get; set; } 
+4

你不应该需要这个。为什么你想要一个假装成布尔型的字符串? – SLaks

+0

你是对的,但我需要它作为一个字符串,而不是一个布尔:( – NoviceDeveloper

+0

你不应该需要在**视图**模型 – SLaks

回答

3

你只是在寻找一个用户友好的显示值?这应该发生在视图中,而不是在模型中。例如:

@Html.CheckBoxFor(m => m.CheckBoxValue) 
<!-- some other markup, blah blah blah --> 
@(Model.CheckBoxValue ? "Yes" : "No") 

尽可能地,模型应该只包含数据的结构和逻辑功能。任何用户友好或任何用户看到并与之交互的内容都应该放在视图中。

编辑:

基于您的评论,你可以像这样添加一些模型:

public string CheckBoxDisplayValue 
{ 
    get 
    { 
     return CheckBoxValue ? "Yes" : "No"; 
    } 
} 

注:这是除的bool财产CheckBoxValue这是什么绑定到视图,而不是它的位置。该模型需要一个布尔值,所以CheckBoxValue就是布尔值。所有这些都是为模型添加只读属性以显示布尔值的用户友好显示。

但是这不被推荐。这听起来像你有一个最终目标,你没有在这里指出问题,并且可能有更好的方法来实现这个最终目标。

+0

大卫,我想通过YES如果复选框被选中的属性我的模型,如果它没有被选中,则返回NO。 – NoviceDeveloper

+0

@NoviceDeveloper:为什么?为了回应上面的SLaks的评论,为什么模型需要一个字符串假装是一个布尔值?你可以添加一个属性到模型类似于你试过的(我会将它添加到我的答案中),但这并不是真的把关注点放在他们需要的地方。 – David

+0

例如,一个人正试图填写表格并且是一个复选框,如果他们想要接收新闻信件如果他们不这样做,这个信息会通过电子邮件发送给管理员,现在我的家庭控制器里有一个HTTPpost,它响应操作结果(contactInfoViewModel表单),一旦表单联系信息被验证..信息被发送到管理员。 – NoviceDeveloper