zoukankan      html  css  js  c++  java
  • EF+MVC+Bootstrap 项目实践 Day10

    一、点击菜单跳转页面后显示当前视图相关提示

    以前在项目中用的是iframe,左侧菜单点击载入右侧相应的iframe。

    现在看这份源码,点击左侧菜单,是直接href到新视图,共用_Layout.cshtml。页面刷新了,是从哪里点击过来的,怎么知道呢?

    源码倒是提供了一种思路,每次载入_Layout.cshtml的时候,js判断当前视图和菜单栏所有a标签的href,看哪个href指向当前视图。判断到了之后有return false,不至于乱。

    方法倒是挺巧妙的。。。但不知是所有MVC都这样处理,还是这边的独门绝技。有机会要再看看MVC项目,看这种共享页之间跳转是怎样处理的。

    1、转义

    @Html.ActionLink("管理首页", "Index", new {Area = "Account", Controller = "Auth"},new {Title = "管理系统首页", role = "button", data_toggle = "collapse" })
    <a title="管理系统首页" data-toggle="collapse" href="/Account/Auth" role="button">管理首页</a>

    在@Html里面,不能用-这个符号。。。只能用_,但解析出来会自动转成-,还有这种事。。。

    如果偏偏有属性是下划线或其它特殊字符呢?终于找到了方法,可以使用任意字符,不再自动转义

    @Html.ActionLink("管理首页", null,
                        new RouteValueDictionary
                        {
                            {"Area", "Account"},
                            {"Controller", "Auth"},
                            {"Action", "Login"}
                        },
                        new Dictionary<string, object>
                        {
                            {"Title", "管理系统首页"},
                            {"role", "button"},
                            {"data-toggle", "collapse"},
                            {"parent", "#accordion"},
                            {"aria-expanded", "true"},
                            {"aria-controls", "collapseOne"}
                        })

    另外,还有个Resharper的Bug(或不足)

    按说第二个参数是ActionName,但Resharper死活认不出来(提示红色,Ctrl+左键也点不进去),虽然不影响使用,但有些不爽

    但这样两种却又都可以,可能是因为封装成RouteValueDictionary,没那么智能了吧

    可以看出,Resharper是把RouteValueDictionary里的当作普通参数看待,要传什么都可以,然后再匹配里面的Area、Controller之类的关键字

    而直接使用对象就比较容易认出来

    虽然只是一个小问题,但在研究期间,加深了很多对@Html.ActionLink及参数的理解,也很有收获。

  • 相关阅读:
    【转】千万别理程序员
    qemu-ifup and qemu-ifdown
    Fedora-23 installation in VM image
    Set up bridge to connect to internet
    fedora25 上设置br0
    助教工作总结
    树1
    线性结构
    链表基本操作
    自定义函数
  • 原文地址:https://www.cnblogs.com/liuyouying/p/5058639.html
Copyright © 2011-2022 走看看