【发布时间】:2017-10-31 08:17:13
【问题描述】:
我正在开发一个MVC 应用程序。我有一个包含Partial View 的Parent View。
Partial View 有一个调用Controller Method 的submit 函数。
如果出现任何问题,我需要检索错误消息。如果一切顺利,我想重新加载父视图。
一开始我有一个
@using (Html.BeginForm("Create", "Controller", FormMethod.Post, new { enctype = "multipart/form-data", onsubmit = "javascript:return validate()" }))
在Partial View。所以当一切正常时,我可以调用一个方法来重新加载父视图
return RedirectToAction("创建", new { id = Id });
但我无法检索错误消息。
所以为了检索错误消息,并保持在同一个视图中。我必须使用 Json。
所以我用
<form action="@Url.Action("Create", "Controller")" id="form" enctype="multipart/form-data" method="post">
并定义一个
$('form').submit(函数(事件)
调用控制器。但我无法重定向到另一个方法来重新加载父视图。
我的父视图有一个类似的模型
@model 长
即当前记录的ID。
当我重定向到另一个方法时。方法这样做...
public ActionResult Create(Id =0)
{
return View(Id);
}
如果我这样做window.location.href =ParentView .. 我没有生成 ID。
我唯一能做的就是调用另一个控制器方法并设置
$('#div).html(result)
但我需要在父视图中设置一个 DIV。我不想那样做。我正在寻找另一种方法。
达到这两个东西的正确方法是什么?
谢谢
【问题讨论】:
-
使用 $.ajax 方法...在 JsonResult 或 ActionResult 中将数据传递给控制器,然后该方法返回 json 数据,然后您在成功方法中检查该数据...
-
同意@DhirenPatel。然后,您确定在 ajax 返回后如何进行。大多数情况下,父页面刷新是 javascript
window.location.href = ... -
是的,但我想在控制器方法上重新加载父视图。如果发生错误,我只返回 json。如果一切正常,我正在尝试重定向到另一个方法..
-
当我重新加载父视图时,我需要传递一个参数,即当前记录的 ID...我如何使用 window.location.href= 来做到这一点?
-
用于传递参数使用可以在javascript中制作ViewModel并传递给控制器并使用可以帮助您的链接stackoverflow.com/questions/40260758/…
标签: jquery ajax asp.net-mvc partial-views