对MVC控制器的JQuery调用返回HTML以注入表行
我有一个包含数据的webgrid 每个数据项都可能有多个变量。 Apon单击行上的图标,我将触发一个ajax调用,以获取所选行的变体,然后偷偷地将它们插入webgrid行 这在将静态测试数据注入行时起作用,但是我已经设置了一个部分视图来呈现内容,我希望通过jquery返回该视图,并简单地插入呈现的html JS 我似乎只得到了对MVC控制器的JQuery调用返回HTML以注入表行,jquery,asp.net-mvc,Jquery,Asp.net Mvc,我有一个包含数据的webgrid 每个数据项都可能有多个变量。 Apon单击行上的图标,我将触发一个ajax调用,以获取所选行的变体,然后偷偷地将它们插入webgrid行 这在将静态测试数据注入行时起作用,但是我已经设置了一个部分视图来呈现内容,我希望通过jquery返回该视图,并简单地插入呈现的html JS 我似乎只得到了[object object] 有人能发现我做错了什么吗?请这样做,而不是返回: $(document).on("click", ".ShowVariants", func
[object object]
有人能发现我做错了什么吗?请这样做,而不是返回:
$(document).on("click", ".ShowVariants", function (e) {
var clickedElement = this;
if ($(this).hasClass("Opened")) {
$(this).removeClass("Opened");
var tr = $(this).closest("tr").html();
var dd = $(this).closest("table").parent().html();
$(this).closest("table").parent().parent().html(tr)
}
else {
$.get("/Release/GetVariants",
{
"releaseId": $(this).attr("data-id")
},
function (data)
{
var tr = $(clickedElement ).closest("tr").html();
$(clickedElement ).closest("tr").html("<td colspan='7' style='/*padding-left:5px*/'><table><tr>" + tr + "</tr><tr><td colspan='7'>" + data+ "</td></tr></table></td>");
}
);
}
});
$(文档)。在(“单击”、“显示变量”上,函数(e){
var clickedElement=this;
if($(this).hasClass(“打开”)){
$(此).removeClass(“打开”);
var tr=$(this.closest(“tr”).html();
var dd=$(this).closest(“表”).parent().html();
$(this).closest(“表”).parent().parent().html(tr)
}
否则{
$.get(“/Release/GetVariants”,
{
“releaseId”:$(this.attr(“数据id”)
},
功能(数据)
{
var tr=$(clickedElement.closest(“tr”).html();
$(clickedElement.closest(“tr”).html(“+tr+”+data+”);
}
);
}
});
您需要在ajax回调中进行操作;此时,您已从服务器返回结果:
var that = $(this);
$.get("/Release/GetVariants", { "releaseId": $(this).attr("data-id") },function (data) {
var table = data;
var tr = that.closest("tr").html();
that.closest("tr").html("<td colspan='7' style='/*padding-left:5px*/'><table><tr>" + tr + "</tr><tr><td colspan='7'>" + table + "</td></tr></table></td>");
});
var that=$(this);
$.get(“/Release/GetVariants”,{“releaseId”:$(this.attr(“data id”)},函数(data){
var表=数据;
var tr=that.closest(“tr”).html();
最接近的.html(“+tr+”+table+”);
});
您的局部视图是什么样子的?当您直接从浏览器调用该局部视图时,会得到什么?returndata.html代码>?在ajax函数中从方法调用正确返回部分视图。我可以在Chrome开发者工具栏的网络选项卡中看到预期的结果。
$(document).on("click", ".ShowVariants", function (e) {
var clickedElement = this;
if ($(this).hasClass("Opened")) {
$(this).removeClass("Opened");
var tr = $(this).closest("tr").html();
var dd = $(this).closest("table").parent().html();
$(this).closest("table").parent().parent().html(tr)
}
else {
$.get("/Release/GetVariants",
{
"releaseId": $(this).attr("data-id")
},
function (data)
{
var tr = $(clickedElement ).closest("tr").html();
$(clickedElement ).closest("tr").html("<td colspan='7' style='/*padding-left:5px*/'><table><tr>" + tr + "</tr><tr><td colspan='7'>" + data+ "</td></tr></table></td>");
}
);
}
});
var that = $(this);
$.get("/Release/GetVariants", { "releaseId": $(this).attr("data-id") },function (data) {
var table = data;
var tr = that.closest("tr").html();
that.closest("tr").html("<td colspan='7' style='/*padding-left:5px*/'><table><tr>" + tr + "</tr><tr><td colspan='7'>" + table + "</td></tr></table></td>");
});