0

我在MVC中有一個控制器,在成功創建命令後需要將視圖重定向到由jquery製作的聯繫人選項卡。以下是我對控制器: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); 
     } 

我想重定向的URL是

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

當前代碼ReturnToAction( 「指數」 + 「/」 + ID,客戶「)重定向到。

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

這不是我想要什麼,我自己也嘗試重定向(「客戶端/索引/」 + ID +「#contacts」),但我得到的網址是這樣的:

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

正如您所看到的,問題在於我正在使用客戶端控制器從聯繫人控制器內部調用生成的頁面。 Id適用於所有示例。

請幫忙!

+0

您是否嘗試過使用返回永久重定向()和硬編碼的標籤的網址是什麼? – James 2011-03-16 07:05:34

+0

硬編碼將無法正常工作,因爲返回網址中有一個動態生成的ID。 – user527662 2011-03-16 07:56:11

回答

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); 
} 
+0

感謝您的迴應Koi,但我們離開了部分視圖,因此我無法測試解決方案,因爲我們不再使用它們。 – user527662 2011-04-04 04:36:10

相關問題