我遇到了IE和FF的问题;我的应用程序正在使用谷歌浏览器。
我将模型绑定到ASP.NET MVC中的视图 我在表单(和其他一些控件)中有一个表行。我通过ajax调用点击按钮来替换表格行的内容。在ajax调用之后,如果我提交如下所示的表单,我无法从控制器方法获得formcollection输入。在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)
{
}
答案 0 :(得分:0)
首先要说明你在ajax调用中提到“GET”和“POST”的原因。仅使用“POST”。
试试这个
$.ajax({
type: 'POST',
url: '/ApproveParts/ReloadCriteria',
dataType: 'json',
contentType: 'application/json',
data : return JSON.stringify({
contentID: $('[name="contentID"]').val(),
unitID: unitID,
criteriaCode: criteriaCode,
selectedValue: $("#validator_" + criteriaCode).val(),
icerikRowSpan: icerikRowSpan,
icerikOnay: icerikOnay
});
});
在您的控制器操作中,接受一个类而不是FormCollection。其中所有属性的定义与您在ajax调用中发送的属性相同。