我有一个带有knockout.js的asp.net mvc项目,所以我的索引页面因为大量的javascript功能而变得非常庞大。 我喜欢将js代码移动到一个单独的文件中,但它不允许我将它应用到大多数代码中,因为如果我有类似的东西
$.ajax({
url: "@Html.Raw(@Url.Action("Load"))",
如果我将这部分代码移动到另一个文件中,则会弹出错误。 请告知我该如何解决这个问题?
答案 0 :(得分:3)
ASP.net不会解析Javascript文件,因此永远不会处理@ Html.Raw和@ Url.Action(“Load”)的变量。
答案 1 :(得分:0)
正如@James Lai指出的那样,ASP.Net不解析服务器端代码。请参阅this post获取解决方法,或者您可以选择哪些脚本仍然可以保留在页面上(使用服务器端代码)而不是“所有内容” - 您可以选择哪种方法满足您的要求。
答案 2 :(得分:0)
ASP.NET MVC不会解析Javascript文件,因此@Html.Raw(@Url.Action("Load"))
将无法在javascript文件中运行。
继承人解决方法
而是在view.cshtml
中声明变量。在脚本部分中
<script type="text/javascript">
var actionUrl = '@Url.Action("Load", "Controller")';
</script>
在javascript文件中使用actionUrl
。