我正在使用MVC4 Ajax.ActionLink来绑定或更新部分视图
@Ajax.ActionLink("Link","Action","Controller" , new {id = @Id}, new AjaxOptions { HttpMethod="Post",UpdateTargetId="dvUpdateId", OnSuccess = "scsFunctions"})
现在的问题是,如果我尝试通过右键单击“新建标签”或“新建Windows”中的“打开”链接来打开链接,而不是我有以下两个问题。
(1)在新标签页或新窗口中,只返回部分视图。所以Page的其他部分就消失了。
(2)它永远不会调用Onsuccess函数和其他函数一样。在上面的代码OnSuccess中,我们定义调用“scsFunctions”,它永远不会调用。所以我们在函数内部编写的脚本永远不会执行。
帮助我找到合适的解决方案......
答案 0 :(得分:2)
我已经解决了这个问题。首先检查是否是AjaxRequest或ChildAction。如果是,则返回PartialView,如果没有返回redirectResult
public ActionResult Index(int param1, bool param2)
{
if (HttpContext.Request.IsAjaxRequest() || ControllerContext.IsChildAction)
{
return PartialView("Controls/_SingolaGallery", param1);
}
return new RedirectResult("http://www.myredirectUrl.com");//you can redirect in this another way--> new RedirectResult(Url.Action("ActinNAme","ControllerName"));
}