是否可以将Razor文件中的Model扩展为单独的Javascript文件?

时间:2015-12-11 22:45:59

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

我有一个Razor cshtml文件,它引用服务器端MyModel和客户端javascript文件,我希望保留所有JavaScript功能:

foo.cshtml

@model BunnyModel
@section scripts {
    <script type="text/javascript" src="foo.js"></script>
}

foo.js

function doStuff() {
    $("#blah").text("Bunnies: " + @Model.BunnieCollection.Count);
}

当然,VS2015在foo.js文件中无法识别我的BunnyModel。

我可以给Visual Studio提供某种类型的提示,以便它能在.js文件中提供模型智能感知吗?

1 个答案:

答案 0 :(得分:2)

您可以将js放在cshtml中:

@model BunnyModel
@section scripts {
    <script type="text/javascript">
        function doStuff() {
            $("#blah").text("Bunnies: " + @Model.BunnieCollection.Count);
        }
    </script>
}

...或将变量放在范围内并在外部函数中引用它:

CSHTML

@model BunnyModel
@section scripts {
    <script type="text/javascript">
        var bunnieCount = @Model.BunnieCollection.Count
    </script>
    <script type="text/javascript" src="foo.js"></script>
}

foo.js

function doStuff() {
    $("#blah").text("Bunnies: " + bunnieCount);
}