【发布时间】:2015-07-31 13:30:39
【问题描述】:
我有这样的事情:
@using (Ajax.BeginForm("Validate", "Basket", new AjaxOptions
{
UpdateTargetId = "panelId",
HttpMethod = "Post",
InsertionMode = InsertionMode.Replace,
OnSuccess = "SuccessMethod"
}))
{
@if(Model != null)
{
my action...
}
else
{
Response.Redirect(Url.Action("Index", "Home"))
}
}
当我使用提交按钮时它工作得很好,因为部分正在刷新,并且布局保持不变。
当我的Model 变为null 时,我遇到了问题,因为用户在我的页面上执行了删除操作。然后我想重定向到我的主页(不同的布局),但是当我这样做时(就像在我的代码中一样),由于InsertionMode.Replace 模式,我的页面上有两个布局。
如何在我的视图中省略 Ajax.BeginForm?
【问题讨论】:
-
您说“我的页面上有两种布局”是什么意思?有什么错误吗?
-
我的页面使用
Ajax.BeginForm使用Layout1,但索引使用Layout2。由于InsertionMode.Replace,我在 Layout1 中获得了带有 Layout2 的主页(我有两个标题横幅,一个来自 Layout1,一个来自 Layout2)。 -
你的 SuccessMethod 是什么样的?
-
@JamieD77 if (result.url) { window.location.href = result.url;但这只有在点击提交按钮后才会触发。就我而言,重定向取决于模型值。
-
我想您应该发布更多代码,例如您的控制器操作。我无法理解为什么您不能在控制器中检查
Model == null并重定向而不是首先加载此视图
标签: c# asp.net .net ajax asp.net-mvc