【发布时间】:2014-03-26 13:19:41
【问题描述】:
我遇到了 IE 和 FF 的问题;我的应用程序正在使用 Google Chrome。
我正在将模型绑定到 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);
}
});
}
点击功能:
$(document).on("click", ".btnSubmitCriteria", function () {
$('#form_3').submit();
return false;
});
控制器方法:
[HttpPost]
public ActionResult CourseCriteriaApprovment(FormCollection collection)
{
}
【问题讨论】:
-
如果它不能在 IE 和 FF 中运行,很可能是您的客户端代码有问题。你真的在你的js中定义了两次
type吗?补充一点,我不会使用 FormCollection,而是使用 ViewModel 来进行模型绑定。 -
感谢您的回答,在我的真实代码中,我只有 'post' 类型;我粘贴了错误的代码块。出于某种原因,我不想在这个特定示例中使用 Viewmodel。我只想知道为什么在对表格行进行更新后我的 formcollection 为空,因为如果我不进行更新,我会在提交后从控制器正确获取 Formcollection
-
您是否尝试在表单帖子上添加断点以查看调试器要说什么?
-
我不明白你所说的表单帖子上的断点是什么意思,我在我的控制器方法上设置了断点,它显示 formcollection 没有键
-
好的,那么您什么时候真正调用
reloadCriteriaTable函数?你能告诉我们那个代码吗?
标签: c# javascript jquery ajax asp.net-mvc