【问题标题】:casting a bool value to bool in cshtml在cshtml中将bool值转换为bool
【发布时间】:2017-01-22 23:46:04
【问题描述】:

我从 cshtml 文件中的服务器代码接收此值。它是一个布尔字段,我得到布尔值。

Order="@Model.OrderModel.IsToday"

我尝试这样做,但不幸的是,当我将鼠标悬停在 ToJson 上时,它说它将是一个字符串。

Order="@Model.OrderModel.IsToday.ToJson()"

如何将此作为布尔值发送到 javascript?我需要显式转换,但我猜我使用 bool 的语法是错误的。

编辑

当我在 javascript 中使用这个 Order="@Model.OrderModel.IsToday" 时,它会显示未定义,该死!

也试过了

Order="@Json.Encode(Model.OrderModel.IsToday)"

仍然作为字符串发送。我不想将它作为字符串作为布尔值发送

【问题讨论】:

  • 您能否为您的代码提供更多上下文? Order 是 JavaScript 代码的一部分吗?您正在尝试从服务器端分配一个值?
  • @dotnetom:很简单的伙伴,您不需要了解更多或为我所追求的提供解决方案。它将布尔值发送为“true”我希望它作为布尔值发送,即 true
  • 正如@dotnetom 所说,您到底想做什么?胡思乱想 -> 我遇到了 C# 将 ToString() 中的 bool 显示为“True”的问题,它实际上并没有映射到 JavaScript 中的 true,所以我需要调用 .ToLower() 或类似名称。
  • 可能是因为你把它放在了一个字符串中...stackoverflow.com/questions/14448604/…
  • @mmcrae:我已将此作为字符串从 cshtml 文件发送到 javascript 文件。这是一个布尔字段。因此,我想以布尔值发送。你至少听得懂这门外行英语吗?

标签: c# angularjs asp.net-mvc razor casting


【解决方案1】:

你在 JavaScript 中得到字符串值,因为你在变量中使用引号,所以你里面的任何东西都会变成一个字符串。

试试这个:

Order = @Model.OrderModel.IsToday.ToString().ToLower()

在这里将布尔值转换为字符串,然后将其转换为小写。你需要它,因为ToString 会给你TrueFalse,你需要布尔值是truefalse

【讨论】:

  • 不,我已经有了这个解决方案,但我的领导说它不应该作为字符串发送。在 Javascript 中,我确实喜欢 ctrl.OrderToday = Order ==='true' 但他说这不是一个好主意或方法。我将它作为布尔值发送后。你能做到吗?
  • 看这个,你写的不是好习惯,看这个帖子stackoverflow.com/questions/11733120/…
  • 如果IsTodaybool,那么为什么该答案中的示例不适合您?即@Json.Encode(Model.IsToday)
【解决方案2】:

将其作为字符串传递并在 Javascript 中转换为布尔值:

var myBool = Boolean(@Model.OrderModel.IsToday.ToString().ToLower());

here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-06
    • 2023-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多