我正在尝试动态更改下拉菜单更改中存在的视图组件。请在下面找到我的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 (内部服务器错误)
我不明白为什么这不起作用。请有人帮我