- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我看来,我有 2 个部分观点。
PV1 在 PV2 的 div 上使用 UpdateTargetId
,因为我们想用新添加的项目更新我们的列表。
当 PV1 上提交的项目有效时,一切正常。当提交 ajax 表单时,它在 ModelState.IsValid == false
时不起作用。它不起作用,因为 UpdateTargetId 位于 PV2 上,我需要更新 PV1 以显示 ModelState 错误。所以我们在 PV2 上遇到了 PV1 的副本!
下面是另一个关于类似问题的 stackoverflow 帖子,但没有提供解决方案。
ASP.NET MVC AJAX change UpdateTargetId if ModelState is invalid
我认为 Json 替代方案可能是一种解决方案,但我想知道我们是否可以采用标准的 Ajax 表单 方法来满足我们的需求?
最佳答案
您可以尝试使用 OnComplete
而不是使用 UpdateTargetId
:
@using (Ajax.BeginForm(new AjaxOptions { OnComplete = "complete" }))
{
...
}
并在此处理程序中测试结果 View 中是否存在错误:
function complete(result) {
var isError = $('span.field-validation-error', result.responseText).length > 0;
if (isError) {
// there was an error => we update the container of the form
$('#frmContainer').html(result.responseText);
} else {
// no error => we hide validation errors and update the result container
$('#frm .field-validation-error').hide();
$('#frm .input-validation-error').removeClass('input-validation-error');
$('#result').html(result.responseText);
}
}
关于ModelState为Invalid时提交数据后的Ajax表单和UpdateTargetId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8026870/
SO 上有很多关于 Ajax.BeginForm 未使用返回部分 View 正确更新目标元素的问题的主题: mvc4 ajax updating same page ASP.NET MVC 4 - A
我想使用 ajax 渲染局部 View 。 当我提交按钮时,部分 View 必须被渲染。 我可以使用 ActionLink 实现它,但我想通过 JavaScript 调用 Action。 但是下面的代
我有一个网页,它在 HTML 表格中显示项目列表。列表上方是一个表单,它允许用户通过 AJAX(使用 Ajax.BeginForm)向列表添加新项目。当数据通过 AJAX 发布到 Controller
我在 Controller 中有这个方法 [HttpDelete] public void DeleteDocument(int id) { //Here I do the deletion i
在 Ajax.BeginForm 中,即使我已经指定了我的部分 View 的 targetId,它也会替换完整 View 。我错过了什么吗? ProductList.cshtml
代码: 当我运行页面时,我会得到正确的 Controller 操作,以使用表单集合中的正确数据来触发: public ActionResult GetResourcesByProject(FormC
我使用一个内部有两个部分 View 的 View 。 第一个部分 View “RenderMatchesListRowUserControl”呈现
我刚刚使用现有 MVC3 项目中的一些代码在 MVC4 中启动了一个新项目。我可以强制我的表单 ajax 重新加载特定的 DIV,但不使用正常的提交方法,只能使用测试 doSomthing() jav
我在HomeController中有这个: public ActionResult Details(string id) { var customer = Customers.
我正在使用 Ajax.BeginForm 创建一个表单,它将对某个 Controller 操作执行 ajax 回发,然后如果操作成功,用户应该被重定向到另一个页面(如果操作失败,则状态消息使用 Aja
我试图弄清楚如何在用户提交具有其 UpdateTargetID 的 Ajax 表单后显示验证错误。属性集。 我很难过如何使用验证错误更新 Ajax 表单而不返回 Create PartialView进
我是一名优秀的程序员,十分优秀!