MVC控制器重定向到Jquery选项卡

时间:2011-03-15 07:41:50

标签: model-view-controller jquery-ui controller jquery-ui-tabs

我在MVC中有一个控制器,在成功创建命令之后需要将视图重定向到由jquery创建的联系人选项卡。这是我对控制器的看法:

[HttpPost]
    public ActionResult Create(Contact newContact, int id)
    {
        try
        {
            if (ModelState.IsValid)
            {
                gogoDB.AddToContacts(newContact); 
                gogoDB.SaveChanges();

                return RedirectToAction("Index" + "/" + id, "Client");
            }
            else
            {
                return View(newContact);
            }
        }
        catch
        {
            return View(newContact);
        }

我尝试重定向到的网址是

http://localhost:xxxxx/Client/Index/2#contacts

当前代码ReturnToAction(“Index”+“/”+ id,Client“)重定向到

http://localhost:xxxxx/Client/Index/2

这不是我想要的。我也尝试过Redirect(“Client / Index /”+ id +“#contacts”),但我得到的网址是这样的:

http://localhost:xxxxx/Contact/Create/Client/Index/2#contacts

正如您所看到的,问题是我正在从联系人控制器内部调用使用客户端控制器生成的页面。 Id适用于所有示例。

请帮忙!

1 个答案:

答案 0 :(得分:0)

我认为你可以做那样的事情。

查看

 $('#SpecificRedirectTest').click(function() {
window.location="/Controller/Index?Id="+ $('myId').val() +"&redirect2Tab=true";
  });

<强>控制器

public ActionResult Index (int Id ,  bool? redirect2Tab)
{
  var client = this._myService.GetById (Id);
  var fvm = this.EditClientFormViewModel (client, MyTabs.EditTab);

if (redirect2Tab.HasValue) {
  if (redirect2Tab.Value) {
    fvm = this.EditClientFormViewModel  (client, MyTabs.SalesHistoryTab);
  }
}
return View("ViewEdit", fvm);
 }