【问题标题】:Using Model Property inside Javascript在 Javascript 中使用模型属性
【发布时间】:2013-12-22 20:55:34
【问题描述】:

使用 ASP.net MVC 3/Razor,如何在脚本标签中包含布尔模型属性?这是我所拥有的:

<script type="text/javascript">
    $(document).ready(function () {
        var claimFlagged = "@Model.Flagged"; 
        // More javascript

如何将 claimFlagged 设置为 Model.Flagged 中的值?

【问题讨论】:

标签: c# javascript asp.net asp.net-mvc razor


【解决方案1】:

这会做你想做的事:

var claimFlagged = @(Html.Raw(Json.Encode(Model.Flagged)));

如果你只是尝试使用这样的东西:

var claimFlagged = @(Model.Flagged);

它实际上会生成TrueFalse(注意大写的TF),而不是更自然的小写版本。使用@(Html.Raw(Json.Encode(...))) 方法会产生正确的小写输出。

我假设您希望在 JavaScript 代码中直接使用布尔值,而不是字符串。如果您确实希望输出为字符串(即"true""false"),只需用引号将代码括起来:

var claimFlagged = "@(Html.Raw(Json.Encode(Model.Flagged)))";

【讨论】:

  • 第一个版本成功了!它只是在第一个(。为什么会这样?
  • @user2206127 是的,我只是在这里测试以确保得到正确的结果。
【解决方案2】:

您是否尝试过删除引号:

<script type="text/javascript">
    $(document).ready(function () {
        var claimFlagged = '@(Model.Flagged)'; 
        // More javascript

如果引用,Razor 不会绑定该属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-10
    • 2019-05-17
    • 2014-03-30
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    相关资源
    最近更新 更多