回发后,Javascript中的Root Path变量为null

时间:2015-08-10 20:24:07

标签: javascript asp.net-mvc asp.net-mvc-4

我正在尝试将根网址存储在我的_Layout.cshtml中的javascript变量中,如下所示。

<script type="text/javascript">
    var rootpath = "";
    $(document).ready(function () {
        rootpath = "@VirtualPathUtility.ToAbsolute("~/")";
    });
</script>

视图为

<script src="~/Scripts/Sales/AddInvoice.js"></script>
    @using(Html.BeginForm("Save","Invoice",FormMethod.Post,new { @id = "frmInvoice" }))
    {
    }

然后在我的JS文件中,我使用rootpath,如下所示:

prepUIAutocomp(rootpath + "Sales/Invoice/GetCustomer", "clientid", "ClientMst_clientname", {}, null, 1);

它工作正常,直到回发/刷新。之后rootpathundefined

由于每个视图都使用_Layout.cshtml,因此路径应该随每个请求一起更新吗?还是我错过了什么?

我希望能够在我的所有视图及其相关的javascripts中使用rootpath变量来创建与ajax相关的URL。有什么建议吗?

感谢

1 个答案:

答案 0 :(得分:0)

接缝很慢的一天。 我不得不改变我的脚本如下,它的工作原理。在这里发布面临类似问题的其他人。

<script type="text/javascript">
    var rootpath = "";
    $(document).ready(function () {
        var x = "@VirtualPathUtility.ToAbsolute("~/")";
        if (x && x != "")
            rootpath = x;
    });
</script>

但我原来的问题仍然存在。

为什么VirtualPathUtility.ToAbsolute("~/")的值首先为空?

是什么导致rootpath的价值消失?