我怎么能在MVC的ViewPage改变页面布局 [英] How could i change layout page from viewpage in mvc

查看:124
本文介绍了我怎么能在MVC的ViewPage改变页面布局的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在asp.net MVC 3剃刀。我在我的项目有一个布局(主)页面。它包含有4个环节和地点的ViewPage(@RenderBody)侧板。当用户点击链接1重定向到viewpage1和LINK1应选择,当他点击链接2重定向到viewpage2和LINK2应如此选择的。它重定向很好地所需要的页面,但它总是只选择虽然我点击链接2,LINK3,LINK4的LINK1。我怎么能选择从个体的ViewPage布局页面的相应链接。引导我。

I am working on asp.net mvc 3 with razor. I have a layout(master) page in my project. It contains a side panel with 4 links and place for viewpage(@RenderBody). when user clicks on link1 it redirects to viewpage1 and link1 should be selected, and when he clicks link2 it redirects to viewpage2 and link2 should be selected so on. It redirecting very well to required pages but it always selects the link1 only though i clicked link2,link3,link4. How could i select the appropriate link in layout page from the individual viewpage. guide me.

推荐答案

根据选定的 的我想你指的使用CSS亮点的,不是吗?如果是这样的话我建议你写一个自定义的HTML辅助生成这些链接:

By selected I guess you mean highlight using CSS, don't you? If this is the case I would propose you to write a custom HTML helper to generate those links:

public static IHtmlString MenuItem(
    this HtmlHelper htmlHelper, 
    string text,
    string action, 
    string controller
)
{
    var li = new TagBuilder("li");
    var routeData = htmlHelper.ViewContext.RouteData;
    var currentAction = routeData.GetRequiredString("action");
    var currentController = routeData.GetRequiredString("controller");
    if (string.Equals(currentAction, action, StringComparison.OrdinalIgnoreCase) &&
        string.Equals(currentController, controller, StringComparison.OrdinalIgnoreCase))
    {
        li.AddCssClass("active");
    }
    li.InnerHtml = htmlHelper.ActionLink(text, action, controller).ToHtmlString();
    return new HtmlString(li.ToString());
}

和再布局内使用助手:

<ul>
    @Html.MenuItem("link 1", "Action1", "Controller1")
    @Html.MenuItem("link 2", "Action2", "Controller2")
    ...
</ul>

现在所有剩下的就是在你的CSS类来定义的。主动规则:

.active {
    ... something fancy to pop the currently selected link from the others
}

这篇关于我怎么能在MVC的ViewPage改变页面布局的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆