2015-07-14 5 views
0

У меня есть следующий код, в котором в контроллере установлен «SelectedTabToFind». Это используется для проверки, так что отображается правильная вкладка.JQuery Tabs MVC 4 - Перенаправить на вкладку с контроллера

$("#tabs").tabs(
{ 
active: $("#SelectedTabToFind").val(), 
cache: false 
}); 

<div id="tabs"> 
<ul> 
    <li><a href="#tabs-1" title="View">View</a></li> 
    <li><a href="#tabs-2" title="Update">Update</a></li> 
    <li><a href="#tabs-3" title="Validate">Validate</a></li> 
    <li><a href="#tabs-4" title="Notes">Notes</a></li> 
</ul> 
<div id="tabs-1"> 
    @Html.Partial("View",Model) 
</div> 
<div id="tabs-2"> 
    @Html.Partial("Update",Model) 
</div> 
<div id="tabs-3"> 
    @Html.Partial("Validate",Model.ValidateModel) 
</div> 
<div id="tabs-4"> 
    @Html.Partial("Notes", Model) 
</div> 

View Tab - отображает информацию

Вкладка Update - Можно обновить информацию на вкладке

Validate Tab - Можно обновить информацию на вкладке

Notes Tab - Отображает список информации с отдельной страницей с вкладками для добавления/изменения примечания

Валидация работает и отображается правильно для обновлений и проверки вкладок. Переадресация не работает, когда я добавляю/обновляю заметку, поскольку она использует отдельную страницу с вкладками.

Я использовал следующий код перед перенаправлять на вкладку

return Redirect(Url.Action("View", new { id = note.Id }) + "#tabs-4"); 

и это не работает с указанным кодом

Если я закомментировать «активный» он работает правильно

$("#tabs").tabs(
    { 
    //active: $("#SelectedTabToFind").val(), 
    cache: false 
    }); 

Как перенаправить на правильную вкладку, но сохранить активную опцию для проверки?

ответ

0

С помощью JQuery UI tabs: How do I navigate directly to a tab from another page?

Правильной вкладки отображается при проверке формы и перенаправлять с другой страницы работает хорошо.

View Page

if (document.location.hash != '') 
     { 
      var tabSelect = document.location.hash.substr(1, document.location.hash.length); 
      //Used to return to tab using return Redirect(Url.Action("View", new { id = note.Id }) + "#4"); 
      $("#tabs").tabs(
      { 
       active: tabSelect, 
       cache: false 
      }); 
     } 
     else 
     { 
      $("#tabs").tabs(
      { 
       //Used to return to tab using return ViewModel.SelectedTab = 2; 
       active: $("#SelectedTabToFind").val(), 
       cache: false 
      }); 
     } 

Используется для записей раздела в контроллере

return Redirect(Url.Action("View", new { id = note.Id}) + "#4"); 

Используется для обновления и проверки секции в контроллере

ViewModel.SelectedTab = 2; 
0

Когда вы перенаправляете вкладку, эта вкладка автоматически активируется. Вы не можете сделать что-то и наоборот!

От jquery tabs doc

активного Типа: Boolean или Integer По умолчанию: 0 Каких панель в настоящее время открыта. Поддерживается несколько типов:

Boolean: Установка активного значения на false приведет к смене всех панелей. Для этого нужно, чтобы сбрасываемый параметр был правдой. Целое число: индекс на основе нуля активной панели (открытый). Отрицательное значение выбирает панели, идущие назад от последней панели.

+0

спасибо, так как я могу вернуть вкладку правильно для проверки, если я удаляю активный: $ ("# SelectedTabToFind"). val(), первая вкладка всегда возвращается, когда мне бы хотелось, чтобы вторая для отображения с подтверждением? – Ros

+0

@Ros есть разница между «перенаправлением на вкладку» и «установкой вкладки как активной»? Я думаю нет! Так вы хотите расширить две вкладки одновременно? – Bellash

+0

У меня есть 4 вкладки, две вкладки позволяют редактировать информацию. Если форма недействительна, я хочу отобразить правильную вкладку с сообщением об ошибке. Это работает с использованием вышеуказанного кода. Когда я устанавливаю активное значение в контроллере. – Ros

 Смежные вопросы

  • Нет связанных вопросов^_^