我正在創建一個ASP.NET MVC Web應用程序,並且想使用YUI TabView(因爲我通常喜歡它的默認外觀,並且我使用了其他YUI的東西,所以額外的開銷將會相對較小)在母版頁中呈現一組選項卡。這是我想要的:在ASP.NET MVC應用程序中使用YUI TabView的最佳方式是什麼?
- 每個選項卡應呈現特定控制器操作的結果。
- 這些控制器操作中的每一個都會呈現一些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>");
}
我的具體問題是:
- 我是否應該放棄YUI的TabView,因爲它不是這個的最佳選擇?
- 我應該抓住TabView的
onBeforeTabChange
事件並重定向到一個視圖,然後重新呈現母版頁(從而重新呈現TabView),基本上不會對TabView進行Ajax化? - 有沒有一種方法可以使用YUI的TabView並保留ajax行爲,同時讓我的動作腳本代碼正確運行?
謝謝...這似乎是合理的,但是在你看來,這是額外的努力讓腳本評估值得這裏的麻煩嗎? – 2009-12-30 23:16:06