C# 在Javascript中使用模型属性

C# 在Javascript中使用模型属性,c#,javascript,asp.net,asp.net-mvc,razor,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 $(文档).ready(函数(){ var claimFlagged=“@Model.Flagged”;

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

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

$(文档).ready(函数(){
var claimFlagged=“@Model.Flagged”;
//更多javascript

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

是否尝试删除引号:

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

$(文档).ready(函数(){
var claimFlagged='@(Model.Flagged)';
//更多javascript

Razor不会绑定引用的属性。

这将满足您的要求:

var claimFlagged = @(Html.Raw(Json.Encode(Model.Flagged)));
如果您只是尝试使用以下内容:

var claimFlagged = @(Model.Flagged);
它实际上会生成
True
False
(注意大写的
T
F
),而不是更自然的小写版本。使用
@(Html.Raw(Json.Encode(…))
方法可以得到正确的小写输出

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

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

可能是第一个版本的重复成功了!它只是在第一个版本上显示无效字符(.Why's this?@user2206127是的,我只是在这里测试以确保得到正确的结果。