我遇到了IE和FF的问题;我的应用程序正在使用Google Chrome。ajax调用后,Formcollection输入值在控制器中为空
我将模型绑定到ASP.NET MVC中的视图我在表单(和其他控件)中有一个表行。我用ajax调用来替换表格行的内容。 ajax调用后,如果我按如下所示提交表单,我无法从控制器方法获取表单收集输入。当我在ajax调用之前提交表单时没有问题。
JS代码更新表行的内容:
function reloadCriteriaTable(unitID, criteriaCode, icerikRowSpan, icerikOnay) {
$.ajax({
type: "GET",
url: 'ApproveParts/ReloadCriteria',
data: { contentID: $('[name="contentID"]').val(), unitID: unitID, criteriaCode: criteriaCode, selectedValue: $("#validator_" + criteriaCode).val(), icerikRowSpan: icerikRowSpan, icerikOnay: icerikOnay },
cache: false,
type: "POST",
success: function (data, textStatus, XMLHttpRequest) {
$('#tr_' + criteriaCode).replaceWith(data);
$('#continueBtn').on('click', function() {
$('#form_3').submit();
return false;
});
},
error: function (xhr, status, error) {
alert(xhr + ' ' + status + " : " + error);
}
});
}
的onClick功能:
$(document).on("click", ".btnSubmitCriteria", function() {
$('#form_3').submit();
return false;
});
控制器的方法:
[HttpPost]
public ActionResult CourseCriteriaApprovment(FormCollection collection)
{
}
如果它在IE和FF中不起作用,那么您的客户端代码的可能性有点不对。你实际上有'type'在你的js中定义了两次吗?只是一个额外的说明,我不会使用FormCollection,而是一个ViewModel用于模型绑定。 – Justin
感谢您的答案,在我的真实代码中,我只是'后'类型;我粘贴了一个错误的代码块。出于某种原因,我不想在此特定示例中使用Viewmodel。我只想知道为什么表单行更新后我的表单集合是空的,因为如果我没有更新,我在提交之后从控制器中正确地获取表单集合 – user3464177
您是否尝试在表单文章上添加断点以查看内容调试器必须说? – Justin