Я создаю веб-приложение ASP.NET MVC и хотел бы использовать YUI TabView (потому что мне обычно нравится его внешний вид по умолчанию, и я использую пару других вещей YUI, поэтому дополнительные накладные расходы будут сравнительно небольшими), чтобы визуализируйте набор вкладок на главной странице. Вот что я хочу:Каков наилучший способ использования YUI TabView в приложении ASP.NET MVC?
- Каждая вкладка должна отображать результат действия конкретного контроллера.
- Каждое из этих действий контроллера отображает некоторый HTML и связанный javascript.
- В конце концов, для управления будет какое-то состояние приложения, но я игнорирую то, что на данный момент просто посмотрю на вкладку.
Каков наилучший способ для этого?
YUI TabView examples предполагает, что содержимое каждой вкладки находится в собственном div.
<div id="demo" class="yui-navset">
<ul class="yui-nav">
<li><a href="#tab1"><em>Tab One Label</em></a></li>
<li class="selected"><a href="#tab2"><em>Tab Two Label</em></a></li>
<li><a href="#tab3"><em>Tab Three Label</em></a></li>
</ul>
<div class="yui-content">
<div id="tab1"><p>Tab One Content</p></div>
<div id="tab2"><p>Tab Two Content</p></div>
<div id="tab3"><p>Tab Three Content</p></div>
</div>
</div>
Я не хочу, чтобы это сделать, так как я не хочу, чтобы загрузить все содержимое для всех вкладок сразу. Я думаю, что мне бы хотелось поймать события, которые позволят мне увидеть вкладку, которая активируется, а затем перенаправить на соответствующее действие. Похоже, атрибут Вкладка „DATASRC“ мог бы мне помочь, поэтому я создал тест, основанный на их dynamic example:
tabView.addTab(new YAHOO.widget.Tab({
label: 'One',
dataSrc: '/Home/Action1',
cacheData: true,
active: true
}));
tabView.addTab(new YAHOO.widget.Tab({
label: 'Two',
dataSrc: '/Home/Action2',
cacheData: true
}));
tabView.appendTo('container');
Это, кажется, работает достаточно хорошо в получении действий, но один артефакт это что любой Javascript, что излучается мое действие не кажется, получить оценку правильно ... то есть, такого рода вещи не показывать мое окно предупреждения:
public ActionResult Action2()
{
return Content("<script type='text/javascript'>alert('test');</script>");
}
мои конкретные вопросы:
- Должен ли я отказаться от TabView от YUI, потому что это не лучший выбор для этого?
- Должен ли я просто поймать событие TabView
onBeforeTabChange
и просто перенаправить на представление, которое затем повторно отображает главную страницу (и, таким образом, TabView), в основном, неаксируя TabView? - Есть ли способ, которым я могу использовать TabView от YUI и сохранять поведение ajax при правильном запуске кода сценария моих действий?
Спасибо ... это кажется разумным, но есть ли дополнительные усилия, чтобы, на ваш взгляд, получить скрипты, чтобы оценить, стоит ли проблем? –