Asp.net mvc 4 从.JS加载/调用csHtml

Asp.net mvc 4 从.JS加载/调用csHtml,asp.net-mvc-4,razor,Asp.net Mvc 4,Razor,我正在使用MVC4,试图从.JS文件加载.csHtml文件,但我一直收到错误“找不到” 我还有别的办法吗 以下是我的Jquery代码: $(document).ready(function () { $('.show-sidebar').on('click', function () { $('div#main').toggleClass('sidebar-show'); setTimeout(MessagesMenuWidth, 250); })

我正在使用MVC4,试图从.JS文件加载.csHtml文件,但我一直收到错误“找不到” 我还有别的办法吗

以下是我的Jquery代码:

$(document).ready(function () {
    $('.show-sidebar').on('click', function () {
        $('div#main').toggleClass('sidebar-show');
        setTimeout(MessagesMenuWidth, 250);
    });
    var ajax_url = location.hash.replace(/^#/, '');
    if (ajax_url.length < 1) {
        ajax_url = 'Views/Home/index.cshtml'; //<<<< when the browser load i get the msg "not found" 
    }
     ................
     ................
$(文档).ready(函数(){
$('show sidebar')。在('click',函数(){
$('div#main').toggleClass('sidebar-show');
setTimeout(MessagesMenuWidth,250);
});
var ajax_url=location.hash.replace(/^#/,“”);
if(ajax_url.length<1){

ajax_url='Views/Home/index.cshtml';//您需要使用MVC路由系统获取url。使用url帮助器方法获取给定控制器/操作的url:

if (ajax_url.length < 1) {
    ajax_url = '@Url.Action("Index", "Home")';
}
在加载外部JS文件之前,请确保放置上一行。这样,您就可以作为变量访问URL:

if (ajax_url.length < 1) {
    ajax_url = window.MyGlobalObjects.HomeUrl;
}
if(ajax\u url.length<1){
ajax_url=window.MyGlobalObjects.HomeUrl;
}


请注意,您永远不会希望web服务器提供预编译的.cshtml文件——这是一个预编译的文件,在客户端上没有用处(并且可能包含您不希望公开的敏感信息).

您不希望web服务器提供.cshtml文件——您是否尝试在
/Home/Index
加载视图?这是正确的,我正在尝试在/Home/indexs加载视图,直到出现相同的错误,并且在运行时此url正在生成@AbuHamzah,请参阅我的更新答案。我假设您的JS代码嵌入到Razor文件中,但是显然,它是一个独立的.js。
(window.MyGlobalObjects || (window.MyGlobalObjects = {})).HomeUrl = '@Url.Action("Index", "Home")';
if (ajax_url.length < 1) {
    ajax_url = window.MyGlobalObjects.HomeUrl;
}