首页 > 解决方案 > MVC .net core 3.1 尝试使用 ajax/javascript 刷新视图组件,不断收到 500 Internal Sever Error

问题描述

当用户单击下拉项目时,我想根据用户在下拉列表中选择的内容刷新视图组件。我尝试了不同的方法来渲染组件,但每一种都导致了 500 错误。我知道我的 ajax 和脚本调用由于调试而进入我的控制器,一旦控制器返回,我得到 500 错误

这是视图 comp 的 cshtml 片段:

<div id="component" class="panel-body">
    @await Component.InvokeAsync("tk", new Timecard() { TimeCardType = Model.Flsa })
</div>

这是我试图调用的控制器代码:

[HttpGet]
public IActionResult RefreshView(string flsa)
{
    if (flsa == "N")
        return NonExempt(flsa);
    else
        return Exempt(flsa);
}

public IActionResult NonExempt(string flsa)
{
    return ViewComponent("_NonExempt", new Timecard() { TimeCardType = flsa });
}

public IActionResult Exempt(string flsa)
{
    return ViewComponent("Exempt", new Timecard() { TimeCardType = flsa });
}

以下是 js/ajax 中的一些尝试并尝试刷新它:

$.ajax({
    url: 'RefreshView',
    data: { flsa: 'N' },
    method: "GET"
}).done(function (res) {
    $('#component').html(res);
});

和:

$(function () {
    $('#component').load('RefreshView', {
        flsa: result.flsa
    });
});

这是错误:

jquery.js:9600 GET http://localhost:61440/TimeKeeper/RefreshView?flsa=N 500(内部服务器错误)

就像我说的,上面的两个 js 片段都很好地击中了我的控制器。

错误截图 在此处输入图片描述

标签: javascriptjqueryajax.net-coreasp.net-core-mvc

解决方案


推荐阅读