在Javascript中使用Model属性

时间:2013-12-22 20:55:34

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

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

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

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

2 个答案:

答案 0 :(得分:2)

这将做你想要的:

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

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

var claimFlagged = @(Model.Flagged);

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

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

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

答案 1 :(得分:0)

您是否尝试删除引号:

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

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