gpt4 book ai didi

c# - 查看生成错误消息 : String was not recognized as a valid Boolean

转载 作者:行者123 更新时间:2023-11-30 18:00:58 25 4
gpt4 key购买 nike

在一个管理页面中,我最初是在一个 View 中生成几个复选框,如下所示:

型号:

public class Foo
{
public const string Bar = "SomeString";
}

查看:

@Html.CheckBox(Foo.Bar)
@Html.Label(Foo.Bar)

但是,我想更改几个复选框的显示名称,所以我创建了一个 View 模型(稍后添加显示名称属性):

public class FooViewModel
{
public string Bar
{
get { return Foo.Bar; }
}
}

并修改 View :

@Html.CheckBox(Model.Bar)
@Html.LabelFor(m => m.Bar)

但是, View 现在在呈现复选框时生成错误:

String was not recognized as a valid Boolean

请注意,如果我将 View 模型中的属性名称更改为“Bar”以外的任何名称, View 将正确呈现。例如:

public class FooViewModel
{
public string WTF
{
get { return Foo.Bar; }
}
}

@Html.CheckBox(Model.WTF)
@Html.LabelFor(m => m.WTF)

如果我的 viewmodel 属性名为“Bar”,谁能向我解释为什么会出现此错误?

编辑:我已经稍微更新了我的问题,看看我是如何产生一些困惑的。该 View 用作搜索表单,复选框仅用于选择“搜索条件”。

我以这种方式生成复选框,因此复选框的名称/ID 与 Controller 内相应的业务逻辑相关。

我知道如果同一类中的属性名称/字段名称相同,代码将无法编译。这不是问题,因为我只是从不同命名空间中的常量初始化属性。

最佳答案

你不能有一个名为 Bar 的常量和一个名为 Bar 的属性:

public class Foo
{
public const string Bar = "SomeString";

public string Bar
{
get { return Foo.Bar; }
}
}

此特定代码片段是无效的 C#,甚至无法编译。

据说 ASP.NET MVC 中的 CheckBox/CheckBoxFor 助手使用 bool 值。所以我真的不明白为什么你甚至试图将它绑定(bind)到一个字符串属性以及这个 Bar 字符串常量的目的。

正确的是具有以下 View 模型:

public class MyViewModel
{
[Display(Name = "som estring")]
public bool MyBoolValue { get; set; }
}

在强类型 View 中:

@Html.LabelFor(x => x.MyBoolValue)
@Html.CheckBoxFor(x => x.MyBoolValue)

关于c# - 查看生成错误消息 : String was not recognized as a valid Boolean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9559029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com