您可以編寫一個自定義HTML幫助程序,它將根據當前控制器和操作生成這些子選項卡。這裏有一個例子讓你開始:
public static class HtmlExtensions
{
public static MvcHtmlString SubTabs(this HtmlHelper htmlHelper)
{
var currentAction = htmlHelper.ViewContext.RouteData.GetRequiredString("action");
var currentController = htmlHelper.ViewContext.RouteData.GetRequiredString("controller");
// TODO: base on the current action and controller
// generate proper tabs
var ul = new TagBuilder("ul");
var lis = new StringBuilder();
var li = new TagBuilder("li");
li.InnerHtml = htmlHelper.ActionLink("sub 1", "sub1", "home").ToHtmlString();
lis.AppendLine(li.ToString());
li = new TagBuilder("li");
li.InnerHtml = htmlHelper.ActionLink("sub 2", "sub2", "home").ToHtmlString();
lis.AppendLine(li.ToString());
ul.InnerHtml = lis.ToString();
return MvcHtmlString.Create(ul.ToString());
}
}
,然後在您的視圖:
<%= Html.SubTabs() %>
很顯然,在我的例子一切都是硬編碼。您可能希望保留一些與給定的控制器和操作相對應的子選項卡的集中式哈希表。一旦你得到正確的標記,只需從你提到的問題中提到的網站申請CSS,你就可以走了。
謝謝你會研究它。但我是asp.net和MVC的初學者,我很難理解,不能有更接近普通css選項卡的初學者解決方案嗎? – user310291 2011-03-22 18:02:58
@ user310291,您始終可以在視圖中對HTML進行硬編碼,而不像示例文章中那樣使用任何助手。我剛剛展示瞭如何實施更加動態的解決方案。 – 2011-03-22 18:04:30