Ajax请求-更改视图组件-内部服务器错误

时间:2018-10-06 15:25:56

标签: javascript asp.net ajax controller

我正在尝试动态更改下拉菜单更改中存在的视图组件。请在下面找到我的JavaScript代码:     //在下拉选择时交换小部件,在保留小部件配置后保存到数据库

$("select[name='elementDrpdwn']").change(function () {
        var el = $(this);
        var widget = el.parent().parent().parent().find(".gs-content-body");
        var idElement = el.parent().parent().parent().parent(); 
        $.ajax({
            url: "@Url.Action("AddComponent", "Home")",
            type: 'GET',
            data: { viewComponent: "News" },
            cache: false,
            async: false,
            success: function (res) {
            console.log(res);
            },
            error: function (xhr, status, error) {
                alert(xhr.responseText);
            }
        }).done(function (success) {
            widget.html('');
            widget.html(success);
        });
    });

此外,下面是被称为控制器和视图的组件(最终,我的意图是将上面的“ News”替换为元素的名称,因为它可能是许多元素之一): 控制器

public IActionResult AddComponent(string viewComponent)
    {
        return View(viewComponent);
    }

查看组件

[ViewComponent(Name = "News")]
[Route("News")]
public class NewsViewComponent : ViewComponent
{
    private readonly MultiTenantContext _context;
    public NewsViewComponent(MultiTenantContext context)
    {
        _context = context;
    }
    public async Task<IViewComponentResult> InvokeAsync()
    {
        var model = _context.NewsItems.ToList();
        return await Task.FromResult((IViewComponentResult)View("News", model));
    }
}

更改下拉菜单时出现以下错误:

  

无法加载资源:服务器响应状态为500   (内部服务器错误)

我不明白为什么这不起作用。请有人帮我

0 个答案:

没有答案