Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t使用Ajax ASP.NET核心MVC更新部分视图_Ajax_Asp.net Core Mvc - Fatal编程技术网

Can';t使用Ajax ASP.NET核心MVC更新部分视图

Can';t使用Ajax ASP.NET核心MVC更新部分视图,ajax,asp.net-core-mvc,Ajax,Asp.net Core Mvc,我想用Ajax更新我的局部视图,但由于某些原因,它不起作用。如果我使用load方法(和注释ajax代码),它就可以工作。这是我的代码: 这是我的主要观点: @model IEnumerable<WebApplicationMVC.Models.Test> @{ ViewData["Title"] = "Testing"; } <div id="partial"> @await Html.PartialAsync("Question", Model.ToList

我想用Ajax更新我的局部视图,但由于某些原因,它不起作用。如果我使用load方法(和注释ajax代码),它就可以工作。这是我的代码:

这是我的主要观点:

@model IEnumerable<WebApplicationMVC.Models.Test>

@{
    ViewData["Title"] = "Testing";
}

<div id="partial">
@await Html.PartialAsync("Question", Model.ToList()[0])
</div>

<input type="button" id="b" value="next" class="btn btn-default" />

<script>

$("#b").click(function () {

    //this code doesn't work

    $.ajax({
        url: 'Test/Question',
        type: 'GET',
        contentType: "application/json; charset=utf-8",
        data: { id: '@Model.ToList()[1].ID' },
        dataType: "json",
        success: function (result) {
            $("#partial").html(result);
        }
    });

    //this code works
    @*$("#partial").load('@Url.Action("Question","Test",new { id=Model.ToList()[1].ID })');*@

});

我犯了什么错误?

您指定了
数据类型:“json”,但您的方法返回的是一个视图(html),而不是
JsonResult
,因此引发了一个异常

省略
数据类型
选项(函数将根据响应计算出来)或将其更改为
数据类型:“html”

此外,您还可以删除
contentType
选项。您正在生成一个没有主体的GET,因此它被忽略(如果它是POST,您的方法也会失败,因为您没有序列化数据)

您的url也应该是
/Test/Question
(正斜杠前面),并且应该始终使用
@url.Action()
方法生成url

你的功能应该是

$.ajax({
    url: '@Url.Action("Question","Test")',
    type: 'GET',
    data: { id: '@Model.ToList()[1].ID' },
    success: function (result) {
        $("#partial").html(result);
    }
});

我想补充一点,当我点击正在抛出异常的按钮时,没有抛出异常(您将得到
500(内部服务器错误)
-注意关于url的编辑您应该学会使用浏览器工具调试代码:)-错误的url将给出
404
错误,而
数据类型
将给出一个
500
错误
$.ajax({
    url: '@Url.Action("Question","Test")',
    type: 'GET',
    data: { id: '@Model.ToList()[1].ID' },
    success: function (result) {
        $("#partial").html(result);
    }
});