解析Razor javascript @ Url.Content原型模式

时间:2016-11-16 05:54:06

标签: jquery asp.net-mvc razor

我有一个ASP.NET MVC View(Razor),在文件末尾我加载了一些javascript:

@section FooterScripts{

    <script>
        $(function () {
            // creates the data table
            var ajaxUrl = '@Url.Content("~/Accounting/GetListAccounts")/';
        });
    </script>

    <script src="~/Scripts/pages/list-account.js"></script>

}

此处变量ajaxUrl已解析,因此变量将获取值: enter image description here

现在,list-account.js使用原型模式并具有以下内容:

! function($) {
    "use strict";

    var ListAccount = function() {
        this.$window = $(window)
    };


    ListAccount.prototype.start = function() {
            var $this = this;

            var ajaxUrl = '@Url.Content("~/Accounting/GetListAccounts")/';

        },
        //init
        $.ListAccount = new ListAccount, $.ListAccount.Constructor = ListAccount
}(window.jQuery),

//initializing
function($) {
    "use strict";
    $.ListAccount.start();
}(window.jQuery);

我的问题是这里变量ajaxUrl没有得到解决。似乎为Razor解析@Url.Content变量应该在代码中。

  

任何变通方法或解决方案,以便我的prototype javascript文件解析@ Url.Content?

1 个答案:

答案 0 :(得分:0)

如果你想在javascript中使用razor,你必须在.cshtml文件中编写js代码,在你的情况下,你可以将ajaxUrl设置为全局变量并在{{1}中调用它文件,如下所示:

index.cshtml文件中的

.js

您可以直接在 list-account.js 文件中使用ajaxUrl