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