Переадресация контроллера MVC на вкладку Jquery - PullRequest
0 голосов
/ 15 марта 2011

У меня есть контроллер в 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 ("Index" + "/" + id, Client") перенаправляет на

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

, что не то, что я хочу. Я также пробовал Redirect (" Client / Index / "+ id +" #contacts "), но получаемый URL-адрес выглядит примерно так:

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

Как видите, проблема в том, что я вызываю страницу, сгенерированную с помощью клиентского контроллера, внутри контроллера контактов. Идентификатор работает правильно во всех примерах.

Пожалуйста, помогите!

1 Ответ

0 голосов
/ 30 марта 2011

Я думаю, что вы можете сделать что-то подобное.

View

 $('#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);
 }
...