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 

또한 리디렉션 ("클라이언트/색인 /"+ 아이디 + "#contacts")을 시도했지만 내가 도착 URL은 다음과 같은 것입니다 :

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

여러분도 알다시피, 문제는 연락처 컨트롤러 내부에서 클라이언트 컨트롤러로 생성 된 페이지를 호출하고 있다는 것입니다. Id는 모든 예제에서 올바르게 작동합니다.

도와주세요!

+0

당신이 반환 RedirectPermanent()와 탭의 URL을 하드 코딩을 사용하여 시도 해 봤나 컨트롤러? – James

+0

반환 URL에 동적으로 생성 된 ID가 있으므로 하드 코딩이 작동하지 않습니다. – user527662

답변

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