微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery – 使用位于App_Data中的静态.json文件?

在我的ASP.NET MVC 4项目中,我的App_Data文件夹中有一个.json文件,其中包含我要加载到D3.js的地理数据.

到目前为止,我的工作方法是让jQuery对某个Controller执行AJAX调用,返回一个JsonResult – 并且成功时,将JSON存储在一些加载到D3中的Javascript变量中.这一次,我想跳过控制器并直接从App_Data文件夹请求静态.json文件.

我尝试使用var url =“@ Url.Content(”〜/ App_Data / example.json“)”;来抓取.json的相对路径,但是Javascript调试器使我有很多奇怪的正则表达式错误.

我还尝试将文件放入Content文件夹以查看目录名称是否有所不同.

> var path =“@ Url.Content(”〜/ Content / example.json“)”;结果

NetworkError: 404 Not Found – localhost:xxxxx/Content/u.json

> var path = @ Url.Content(“〜/ Content / example.json”);结果

SyntaxError: invalid regular expression flag u: var path = /Content/example.json;

> var json = $.getJSON(“../ Content / example.json”)似乎向正确的目录发送请求,但返回404错误.此外,使用Razor语法指向相对URL工作,但仍然是404s.
> Adding mimeMap info to web.config也没有帮助.

我的问题是:是否可以使用存储在App_Data(或内容目录)中的JSON文件,只使用Javascript / jQuery?在ASP.NET中,只有一种方法可以做到这一点吗?有没有更好的方法完全采取?

解决方法

要首先在visual studio中读取json文件,您需要在web.config中使用以下内容

你可以在任何地方使用它

<configuration>
      <system.webServer>
       <staticContent>  
          <mimeMap fileExtension="json" mimeType="application/json" />
       </staticContent>
     </system.webServer>
      -------All other Settings---
      ----Your all other setting------
</configuration>

由于安全限制,无法访问App_Data,但您可以将文件放在应用程序的其他位置.使用jquery函数getJSON()执行此操作是一个示例.

$("document").ready(function() {

    var jqxhr = $.getJSON("/Content/usa.json",function () {
        console.log("success");
    })
   .done(function () {
       console.log("second success");
   })
   .fail(function () {
       console.log("error");
   })
   .always(function () {
       console.log("complete");
   });
});

快乐编码享受

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐