0

我正在使用 VS2012,并运行 ASP.NET MVC4 项目。

我似乎无法在下面触发它:

$.ajax({
    url: "~/xml/JsonTest.json",
    type: "GET",
    dataType: "json",
    success: function (json) {
        alert("HI");                
    }
}); 

我也尝试过这种方式,但无济于事:

$.getJSON('../xml/JsonTest.json', function (json) {            
        alert("GET JSON !");
    });

它是否以某种方式找不到目录结构?谢谢。鲍勃

4

2 回答 2

2

第一个肯定行不通,因为~这对客户端没有任何意义。第二个示例请求的实际 URL 是什么?它会发送 AJAX 请求吗?回应是什么?

如果您有一个动态的服务器端 URL,那么您将希望使用服务器端代码在呈现的输出中动态构建它。像这样的东西:

$.ajax({
    url: '@Url.Content("~/xml/JsonTest.json")',
    type: 'GET',
    dataType: 'json',
    success: function (json) {
        alert("HI");                
    }
});

这将导致客户端 JavaScript 使用服务器端路径的完整 URL 呈现"~/xml/JsonTest.json"

于 2013-07-09T18:10:30.937 回答
0

我的情况的最佳解决方案是在 C# 方法中正确编码,如下所示:

   public string getJsonParameters()
    {

        JavaScriptSerializer ser = new JavaScriptSerializer();

        string jsonStr = System.IO.File.ReadAllText(Server.MapPath("~/App_Data/myKeys.json"));                        

        JsonParameters jsonData = (JsonParameters)ser.Deserialize(jsonStr, typeof(JsonParameters));            

        return  jsonStr;
    }
于 2013-07-09T19:53:41.610 回答