在IFrame中使用Form的ASP.NET MVC重定向

时间:2014-11-26 03:42:48

标签: html asp.net-mvc sharepoint iframe

我正在开发一个使用ASP.Net MVC Web应用程序的SharePoint应用程序。 Web应用程序在SharePoint中的iframe内启动。

我有一个用于存储与项目相关的信息的表单。可以在此表单上执行不同的操作:

  • 提交表单时没有错误:表单会重定向到我项目的主页。为此我正在使用。:



Html.BeginForm(.., FormMethod.Post, new { **@target="_top**", @class = "form-horizontal" })




正如您所看到的,我将表单重定向到目标_top,以便能够返回我的主页。

  • 取消表单:表单被取消,我被重定向到我项目的主页。为此,我还使用了与目标_top的链接:



<a href="@Model.ProjectUrl" target="_top" class="btn  btn-default">Cancel</a>:
&#13;
&#13;
&#13;

一切都适合这种情况

  • 提交表单但发布方法错误

现在让我们想象一下我提交表单但处理过程中出现了一些错误。我想要做的是再次显示我的页面中框架内的表单,并在表单顶部显示验证错误。 上面解释了这个问题,我的表单将目标设置为top,验证错误显示在顶部窗口而不是我的框架中。所以就像我被重定向到一个新的页面。

以下是我的帖子操作代码:

&#13;
&#13;
if (!ModelState.IsValid)
{
 return View("Edit", KeyFiguresHelper.BuildKeyFiguresEditViewModel(keyFigure, agencies));
}

var keyFiguresDTO = KeyFiguresHelper.ExtractKeyFiguresFromModel(model, agencies);
var errorCode = _projectService.EditProjectKeyFigures(keyFiguresDTO);

if (errorCode == ErrorCode.NO_ERROR)
{
  return Redirect(keyFigure.ProjectUrl);
}

ModelState.AddModelError("", _errorMessageFactoryService.Create(errorCode));
return View("Edit", KeyFiguresHelper.BuildKeyFiguresEditViewModel(keyFigure, agencies));
&#13;
&#13;
&#13;

是否可以使用目标重定向页面&#34; _top&#34;如果帖子操作运行良好,如果我有任何错误重定向到目标&#34; _self&#34; ?

非常感谢您的帮助

0 个答案:

没有答案