1

这可能是任何问题的重复,但我无法找到解决问题的方法。

我正在构建一个 MVC4 应用程序,我想在其中使用 AJAX 从另一个 JavaScript 文件加载 JSON 数据。

为此,我尝试使用$.getJSON(), $.ajax(),$.get()其他类似的函数来加载数据。这是一个简单的 AJAX 调用,没什么花哨的!最终我意识到我需要调用一个控制器/动作来加载 JSON 并将其返回。这个解决方案对我有用。

$.ajax({
    type: "GET",
    url: "/controller/action", // <-- How can I refer to the JSON file directly here?
    contentType: "application/json; charset=utf-8",
    dataType: "application/json",
    success: function(data) {
    },
    error: function(err) {
    }
});

我想知道是否有其他方法可以让我在视图本身中使用 JavaScript 加载此文件而不调用任何控制器/动作?

注意:该文件是 .json 文件,而不是 .js 文件。我不想将文件包含在任何<script>标签中!

4

2 回答 2

0

这里的问题是您没有在 web.config 中指定类型为 json 的 mime 类型,并且 IIS/IIS Express 返回 404 错误。

尝试像这样修改您的 web.config:

<system.webServer>
    <staticContent>
        <mimeMap fileExtension=".json" mimeType="application/json" />
    </staticContent>
</system.webServer>

您还需要将 dataType 更改为 json 而不是 application/json:

$.ajax({
    type: "GET",
    url: "Content/your.json",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
    },
    error: function (err) {
    }
});

希望这可以帮助。

于 2013-08-21T13:58:41.687 回答
-1

要引用 JSON 文件,您可以使用以下Url.Content()方法中的方法Javascript

$.ajax({
    type: "GET",
    url: "@Url.Content("~/Content/your.json")", 
    contentType: "application/json; charset=utf-8",
    dataType: "application/json",
    success: function (data) {
    },
    error: function (err) {
    }
});

在这种情况下,我your.json在文件夹中有一个文件Content

希望能帮助到你 !

于 2013-08-21T13:01:21.057 回答