/ / Jaki jest najlepszy sposób korzystania z TabView YUI w aplikacji ASP.NET MVC? - javascript, asp.net-mvc, yui

Jaki jest najlepszy sposób korzystania z TabView YUI w aplikacji ASP.NET MVC? - javascript, asp.net-mvc, yui

Tworzę ASP.Aplikacja internetowa NET MVC i chciałbym użyć TabView YUI (ponieważ ogólnie podoba mi się jej domyślny wygląd i używam kilku innych rzeczy YUI, więc dodatkowe obciążenie będzie stosunkowo niewielkie) do renderowania zestawu kart na stronie wzorcowej Oto czego chcę:

  • Każda karta powinna renderować wynik określonej akcji kontrolera.
  • Każda z tych akcji kontrolera spowoduje wyświetlenie kodu HTML i związanego z nim javascript.
  • W końcu będzie jakiś stan aplikacji do zarządzania, ale w tej chwili ignoruję to, aby spojrzeć na widok z kartami.

Jaki jest najlepszy sposób na zrobienie tego?

YUI Przykłady TabView sugerują, że zawartość każdej zakładki jest oddzielna.

<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>

Nie chcę tego robić, ponieważ nie chcęwczytaj całą zawartość wszystkich kart jednocześnie. Myślę, że chciałbym złapać zdarzenia, które pozwalają mi zobaczyć aktywowaną kartę, a następnie przekierować do odpowiedniej akcji. Wygląda na to, że atrybut tabs „dataSrc” może mi pomóc, więc zbudowałem test na podstawie ich przykład dynamiczny:

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");

Wydaje się, że to działa wystarczająco dobrze, aby dostać się dodziałań, ale jednym z artefaktów jest to, że jakikolwiek skrypt javascript, który jest emitowany przez moje działanie, nie wydaje się być poprawnie oceniany ... tj. ten rodzaj rzeczy nie wyświetla mojego pola alertu:

public ActionResult Action2()
{
return Content("<script type="text/javascript">alert("test");</script>");
}

Moje konkretne pytania to:

  1. Czy powinienem zrezygnować z TabView YUI, ponieważ nie jest to najlepszy wybór?
  2. Powinienem tylko złapać TabView onBeforeTabChange zdarzenie i po prostu przekieruj do widoku, który następnie ponownie renderuje stronę wzorcową (a tym samym TabView), po prostu odfiltrowując TabView?
  3. Czy jest sposób, w jaki mogę użyć TabView YUI i zachować zachowanie ajax przy jednoczesnym poprawnym uruchomieniu kodu skryptu moich działań?

Odpowiedzi:

0 dla odpowiedzi № 1

Twoja treść zostanie umieszczona na stroniew odpowiednim miejscu. Czas na jego wykonanie już dawno minął. Potrzebujesz czegoś takiego jak funkcja oddzwaniania jQuery, która uruchomi wybrany skrypt po zakończeniu akcji AJAX. Aby twój alert wyskoczył, będziesz musiał wysłać go z oryginalnym żądaniem strony.