gpt4 book ai didi

javascript - 为什么浏览器不呈现来自 Controller 的响应?

转载 作者:行者123 更新时间:2023-11-30 16:54:36 24 4
gpt4 key购买 nike

当对 Controller 进行 POST 时, Controller 会准确响应我希望浏览器呈现的内容。但是浏览器不呈现响应。我已验证 Fiddler 中的响应良好。

下面的代码显示了我认为的相关代码。返回响应的 Controller 操作方法,具有 mvc 帮助程序代码的模板的一部分,使用表单输入触发 ajax 调用的 javascript/jquery 代码。

我想使用 FormCollection。为什么浏览器不呈现响应,我该怎么做才能修复它?

BoMController

public ActionResult GetBillOfMaterialsView(FormCollection frmColl){
// snipped out model interaction
return PartialView("~/Views/Project/Index.cshtml", project);
}

Index.cshtml

@using (Html.BeginForm("GetBillOfMaterialsView", "BoM", FormMethod.Post, new {id = "frmGetBom"})) { 
// selProj input select code removed for brevity
}

function submitGetBoM() {
var frmGetBom = $('#frmGetBom');
$.ajax({
type: 'POST',
url: frmGetBom.attr('action'),
data: frmGetBom.serialize()
});
}

$(document).ready(function() {
$('#selProj').selectmenu( {
select: function(){submitGetBoM()}
}).addClass("overflow");
});

最佳答案

单独调用 $.ajax 不会将服务器的响应附加到文档中,您必须使用 success 回调来手动获取响应并将其附加.

例如:

$.ajax({
type: 'POST',
url: frmGetBom.attr('action'),
data: frmGetBom.serialize(),
success: function(response) {
$('#someContainerId').html(response);
}
});

或者,使用 load() 是上面的简写:

$('#someContainerId').load(frmGetBom.attr('action'), frmGetBom.serializeArray());

参见 Documentation

关于javascript - 为什么浏览器不呈现来自 Controller 的响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29925166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com