asp.net mvc选项卡内部的选项卡

asp.net mvc选项卡内部的选项卡,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我使用标准visual studio模板创建了一个asp.net mvc2项目,该模板包含两个选项卡“主页”和“关于” 在“主页”选项卡中,我想从这里添加子选项卡 如何操作:我可以创建子组件和子控制器吗 我是asp.net和MVC的初学者,所以难道没有一个初学者解决方案可以尽可能接近普通css选项卡吗?您可以编写一个自定义HTML帮助程序,根据当前控制器和操作生成这些子选项卡。下面是一个让您开始学习的示例: public static class HtmlExtensions { pub

我使用标准visual studio模板创建了一个asp.net mvc2项目,该模板包含两个选项卡“主页”和“关于”

在“主页”选项卡中,我想从这里添加子选项卡

如何操作:我可以创建子组件和子控制器吗


我是asp.net和MVC的初学者,所以难道没有一个初学者解决方案可以尽可能接近普通css选项卡吗?

您可以编写一个自定义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,您可以始终在视图中硬编码HTML,而不使用示例文章中的任何帮助程序。我只是展示了如何实现更具动态性的解决方案。