<form> <asp>或</asp> </form>之外的标题

时间:2015-03-11 04:43:12

标签: html css asp.net visual-studio

所以我注意到,自动生成的[Code here]中的任何html都可以从master创建的表单中更改。

我有一个用ul做的标题,每个元素都是li。 我希望所选页面的li在选定页面上变为li class-“active”。

由于master的所有其他形式都是从它继承属性,因此在[Code here]中放置一个标题会使我在创建新表单时不存在。

我的问题是:有没有办法让li成为li class-“active”而不必覆盖标题的所有代码,方法是将其放入并复制并粘贴我的标题代码但只更改一个李。

<form id="form1" runat="server">
    <div>
        <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
        <div class="bodyGradient">
        <header class="navbar navbar-inverse navbar-static-top">
            <div class="container">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                        <span class="icon-bar"></span>
                    </button>
                </div>
                <div class="navbar-collapse collapse"> 
                    <ul class="nav navbar-nav navbar-left">
                        <li>
                             <a href="/Home.aspx">{Someone's Domain}</a>
                        </li>
                    </ul>
                    <ul class="nav navbar-nav navbar-right">
                        <li>
                            <a href="/Home.aspx">Home</a>
                        </li>
                        <li>
                             <a href="/">About</a>
                        </li>
                        <li>
                             <a href="/">Portfolio</a>
                        </li>
                        <li>
                             <a href="/">CryptoGame</a>
                        </li>
                        <li>
                             <a href="/">Photos</a>
                        </li>
                            <li>
                             <a href="/">Contact</a>
                        </li>
                    </ul>
                </div>
            </div>
        </header>
      </div>
        </asp:ContentPlaceHolder>
    </div>
    </form>

1 个答案:

答案 0 :(得分:0)

您似乎希望根据用户访问的页面突出显示活动菜单项,其中您的菜单存储在MasterPage中,并在多个页面中使用。

有很多方法可以解决这个问题,有很多例子可供我们查看。看看周围,这里只是几个:

How to set css class on active menu item using a masterpage?

active menu item - asp.net mvc3 master page

How to highlight active page in a masterpage menu?

ASP.NET MVC: Masterpage: How to set css class on active menu item

这是我上次遇到这个时所做的(伪ish):

(在ASP.NET母版页中:)

<li class="<%=GetActiveForButton('Home')>">Home</li>
<li class="<%=GetActiveForButton('About')>">About</li>

(在Code Behind .cs中)

public string GetActiveForButton(string button)
{
    string url = HttpContext.Current.Request.Url.AbsoluteUri.ToLower();

    if (url.Contains("home.aspx") && button == "Home")
    {
        return "active-button";
    }
    else if (url.Contains("about.aspx") && button == "About")
    {
        return "active-button";
    }

    return "";
}

注意:这只是一个例子。这段代码可以精心清理,结合逻辑,使用枚举等等。它是伪代码......但你应该能够理解。