精华内容
下载资源
问答
  • 使用区域

    2014-06-02 08:32:00
    新建一个MVC项目,取名叫11-4...出现对话框,输入要新加的区域名字,这里取名为Admin。 添加后,项目中会新增一个Areas顶级文件夹,其中包含了一个名为Admin的文件夹。 每个象Admin这样的文件夹就是一个区...

    新建一个MVC项目,取名叫11-4WorkingWithAreas,项目模板选择Internet Application。

    1、创建区域

    在解决方案管理器中鼠标右击该项目->add->area。

    出现对话框,输入要新加的区域名字,这里取名为Admin。

    添加后,项目中会新增一个Areas顶级文件夹,其中包含了一个名为Admin的文件夹。

    每个象Admin这样的文件夹就是一个区域,里面包含了Controllers、Models、Views文件夹,还包含了一个以该区域名Admin打头的AdminAreaRegistration.cs的文件,这个文件中定义了在本区域内的路由匹配模式:

    namespace _11_4WorkingWithAreas.Areas.Admin
    {
        public class AdminAreaRegistration : AreaRegistration
        {
            public override string AreaName
            {
                get
                {
                    return "Admin";
                }
            }
    
            public override void RegisterArea(AreaRegistrationContext context)
            {
                context.MapRoute(
                    "Admin_default",
                    "Admin/{controller}/{action}/{id}",
                    new { action = "Index", id = UrlParameter.Optional }
                );
            }
        }
    }

     

     

    2、区域内实例

    在Admin区域内,添加控制器HomeController:

    namespace _11_4WorkingWithAreas.Areas.Admin.Controllers
    {
        public class HomeController : Controller
        {
            //
            // GET: /Admin/Home/
    
            public ActionResult Index()
            {
                return View();
            }
    
        }
    }

    在Index动作方法上鼠标右击,添加默认视图Index.cshtml。路径为/Areas/Admin/Views/Home/Index.cshtml.

    这样,客户端可以通过"~/Admin/Home/Index"访问到这个页面。

     

    需要注意的是,如果这个时候直接访问"~/",也就是"~/Home/Index"会出现错误。

    有两个HomeController会发生名字冲突。

    所以,对于区域来说,并不会隔绝路由名字或者控制器名字,都是在整个解决方案中有效的。

    解决这个冲突的方法跟前面一样,在主项目的Global.asax中路由定义里面,添加一个匿名类型new[] { "_11_4WorkingWithAreas.Controllers" }如下:

    namespace _11_4WorkingWithAreas

            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
                routes.MapRoute(
                    "Default", // Route name
                    "{controller}/{action}/{id}", // URL with parameters
                    new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
                    new[] { "_11_4WorkingWithAreas.Controllers" }
                );
    
            }

    这样保证主项目中的控制器优先,避免冲突。

     

    3、生成针对指定区域的输出url

    在同一个区域中,产生对同一个区域内的输出url,不需要采用特殊步骤。

    假设当前项目中Admin区域内的路由定义由上面第1点所示。在Admin区域内的/Areas/Admin/Views/Home/Index.cshtml视图中如果有:

    @Html.ActionLink("Click me", "About")

    根据区域内的路由定义,当前视图的控制器为Home,要生成的动作为About,没有id,根据路由定义反推得到生成的html为:

    <a href="/Admin/Home/About">Click me</a>

     

    但是,如果希望生成的url指向另一个区域,或者是要指向主项目,那就要设置area变量的值。例如:

    @Html.ActionLink("Click me to go to another area", "Index", new{area="Support"})

    这指定了名字叫做Support的区域,生成的url为/Support/Home/Index

    如果想生成的url是指向顶级控制器(即,不是在区域中),那么就该把area指定为空字符串

    @Html.ActionLink("Click me to go to top controller", "Index", new{area=""})

    生成的url就是:/Home/Index

     

    -lyj

     

    转载于:https://www.cnblogs.com/brown-birds/p/3764028.html

    展开全文
  • Java内存区域

    千次阅读 2016-02-27 11:27:48
    这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(Java SE 7版)》的规定,Java虚拟机所管理的内存将...

    本文主要依据《深入理解Java虚拟机》这本书写的,有批评和建议请留言!

           Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(Java SE 7版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时的数据区域,如下图:


    程序计数器

           程序计数器对于大家来说不陌生,本科计算机必修课程《计算机组成原理》在讲计算机指令系统时,多次提到这个概念,这里的程序计数器和指令系统的计数器是同样的功能。在虚拟机的概念模型里,字节码解释器通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。
          由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器(对于多处理器来说是一个内核)都会只执行一个线程中的指令。因此,为了线程切换后能恢复到正确的执行位置, 每条线程都需要有一个独立的程序计数器,各条线程之间计数器互不影响 ,独立存储,我们称这类内存区域为“线程私有”的内存。
          如果线程正在执行的是一个Java方法,这个计数器记录的正在执行的虚拟机字节码指令的地址;如果正在执行的是Native方法,这个计数器值为空(Undefined)。此内存是唯一一个在Java虚拟机规范中没有规定任何OutOfMemorryError情况的区域。

    Java虚拟机栈

           听着这个名字感觉十分高大上,其实这是程序员们很熟悉的“栈”!我们经常说,Java内存分为“堆”和“栈”,这只是一种粗略的分法,因为我们比较关注这两部分区域,其中的“栈”就是Java虚拟机栈,或者说具体一点就是局部变量表

           局部变量表存放了编译期可知的各种基本数据类型(boolean、byte、char、short、int、float、long、double)、对象引用(reference类型,它不等同于对象本身,根据不同的虚拟机实现,它可能是一个指向对象起始地址的引用指针,也可能指向一个代表对象的句柄或者其他与此对象相关的位置)和returnAddress类型(指向了一条字节码指令的地址)。

           与程序计数器一样,Java虚拟机栈也是线程私有的,它的生命周期与线程相同。虚拟机栈描述的是Java方法执行时的内存情况: 每个方法在执行的同时,会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至完成的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。
           在Java虚拟机规范中,对这个区域规定了两种异常 状况:如果线程请求的栈深度大于虚拟机所允许的深度,将抛出StackOverfloowError异常;如果虚拟机栈可以动态扩展,如果扩展时无法申请到足够的内存,就会抛出OutOfMemorryError异常。

    本地方法栈

            本地方法栈与虚拟机栈的作用类似,只不过虚拟机栈为虚拟机执行Java方法服务,而本地方法栈则为虚拟机使用到的Native方法服务 。所谓Native方法,就是本地方法,即是指那些被Java调用的非Java语言编写的方法,比如Java调用了一个C语言写的方法,这个C语言方法就是个Native方法。

    Java堆

           对于大多数应用来说,Java堆是Java虚拟机所管理的内存中最大的一块。我们常说的“堆”内存也是指这一块。Java堆是所有线程共享的一块的内存,因此当编写多线程程序时,一定要注意线程的安全,主要关注这块的内存的读写同步与互斥。

           我们都知道,几乎所有的对象都会分配在堆内存上,因此Java堆是垃圾回收管理的主要区域。从内存回收的角度,由于现在垃圾回收基本都采用分代收集算法,所以Java堆还可以再细分为:新生代和老年代;再细致一点:Eden区、From Survivor区、To Survivor区等。

    方法区

    方法区与Java堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译后的代码等数据。这个区域经常被程序员称为“永久代”,这是因为Sun hotspot设计团队把垃圾回收扩展到了方法区,这部分区域如同Java堆一样被垃圾回收器管理。但是其他虚拟机,如IBM J9没有这个概念。

    大多数程序员遇到过这样的错误:PermGen OutofMemorryError,特别是在用Eclipse等编译器热部署Web程序时,当程序中用到了许多类似Spring这样预加载许多类信息、方法信息的框架时,经常出现这样错误,主要原因就是方法区的内存不够用了!Oracle Java8发布后,将这个区域移动到了本地内存,取名为Metaspace,理论上,不会再出现PermGen OutOfMemorryError,因为本地内存对于普通程序来说,绝对够大了。

    运行时常量池

    运行时常量池(Runtime Constant Pool)是方法区的一部分。Class文件中除了有类的版本、字段、方法、接口等描述等信息外,还有一项信息是常量池(Constant Pool Table),用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后存放到方法区的运行时常量池中。 

    Java虚拟机对Class文件的每一部分(自然也包括常量池)的格式都有严格的规定,每一个字节用于存储哪种数据都必须符合规范上的要求,这样才会被虚拟机认可、装载和执行。但对于运行时常量池,Java虚拟机规范没有做任何细节的要求,不同的提供商实现的虚拟机可以按照自己的需要来实现这个内存区域。不过,一般来说,除了保存Class文件中描述的符号引用外,还会把翻译出来的直接引用也存储在运行时常量池中。 

    运行时常量池相对于Class文件常量池的另外一个重要特征是具备动态性,Java语言并不要求常量一定只能在编译期产生,也就是并非预置入Class文件中常量池的内容才能进入方法区运行时常量池,运行期间也可能将新的常量放入池中,这种特性被开发人员利用得比较多的便是String类的intern()方法。 

    既然运行时常量池是方法区的一部分,自然会受到方法区内存的限制,当常量池无法再申请到内存时会抛出OutOfMemoryError异常。


    转载自:  Java内存区域




    线程的堆区和栈区

    堆区: 

    1. 存储的全部是对象 ,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令) 
    2.jvm只有一个堆区(heap),被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身 
    栈区: 
    1. 每个线程包含一个栈区 ,栈中 只保存基础数据类型的对象和自定义对象的引用(不是对象) ,对象都存放在堆区中 
    2. 每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问 。 
    3.栈分为3个部分: 基本类型变量区、执行环境上下文、操作指令区(存放操作指令) 。 
    方法区: 
    1.又叫 静态区 ,跟堆一样, 被所有的线程共享 。方法区 包含所有的class和static变量 。 

    2.方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量


    展开全文
  •  标记主要用于图像地图,通过该标记可以在图像地图中设定作用区域(又称为热点),这样当用户的鼠标移到指定的作用区域点击时,会自动链接到预先设定好的页面。其基本语法结构如下: class=type id=...

    在HTML中有一个具有把图片划分成多个作用区域,并链接到不同网页的标记,那就是 <area>地图作用区域标记。

      <area>标记主要用于图像地图,通过该标记可以在图像地图中设定作用区域(又称为热点),这样当用户的鼠标移到指定的作用区域点击时,会自动链接到预先设定好的页面。其基本语法结构如下:

    <area

    class=type

    id=Value

    href=url

    alt=text

    shape=area-shape

    coods=value>

      其中。class和id:是分别指定热点的类型和id号。

    alt:用于设定热点的替代性文字。

    href:用于设定该热点所链接的url地址。

    shape和coords:是两个主要的参数,用于设定热点的形状和大小。其基本用法如下:

    <area shape="rect" coords="x1, y1,x2,y2" href=url>表示设定热点的形状为矩形,左上角顶点坐标为(X1,y1),右下角顶点坐标为(X2,y2)。

    <area shape="circle" coords="x1, y1,r" href=url>表示设定热点的形状为圆形,圆心坐标为(X1,y1),半径为r。

    <area shape="poligon" coords="x1, y1,x2,y2 ......" href=url>表示设定热点的形状为多边形,各顶点坐标依次为(X1,y1)、(X2,y2)、(x3,y3) ......。

      <area>标记是在图像地图中划分作用区域的,因此其划分的作用区域必须在图像地图的区域内,所以在用 <area> 标记划分区域前必须用HTML的另一个标记<map>来设定图像地图的作用区域,并为指定的图像地图设定名称,该标记的用法很简单, 即<map name="图像地图名称"> ...... </map>。

      下面通过一个例子来说明这两个标记的用法:

    550)this.style.width=550; if(this.height>550)this.style.width=(this.width*550)/this.height;">

      这里是一幅新书架的图片,要做的效果是:当鼠标点“网址大全”这本书时,新开一窗口,显示关于这本书的简介及订单的网页 (urlall.htm);当 鼠标点“网站设计攻略”这本书时,新开一窗口,显示关于这本书的简介及订单的网页(siteall.htm);当鼠标点“网页技巧大全”这本书时,新开一 窗口,显示关于这本书的简介及订单的网页(pagejqlall.htm)。制作方法:

      1、插入图片,并设置好图像的有关参数,且在<img>标记中设置参数usemap="newbook" ismap,以表示对图像地图(newbook)的引用;

      2、用<map>标记设定图像地图的作用区域,并取名为:newbook;

      3、分别用<area>标记针对三本书的位置划分出三个矩形作用区域,并设定好其链接参数href。

      制作完成,本例的源代码如下:

    <img src="image/htmlp3.gif" width="207" height="148" alt="新书架" hspace="10" align="left" usemap="#newbook" border="0">

    <map name="newbook">

    <area shape="rect" coords="56,69,78,139" href="urlall.htm" target="_blank" alt="这里收集十万多个网址。" title="这里收集十万多个网址。">

    <area shape="rect" coords="82,70,103,136" href="siteall.htm" target="_blank" alt="网站设计师的启蒙读本。" title="网站设计师的启蒙读本。">

    <area shape="rect" coords="106,68,128,136" href="pageall.htm" target="_blank" alt="网页制作者不可不读的书。" title="网页制作者不可不读的书。">

    </map>

      在制作本文介绍的效果时应注意的几点:

      1、在<img>标记不要忘记设置usemap、ismap参数,且usemap的参数值必须与<map>标记中的name参数值相同,也就是说,“图像地图名称”要一致;

      2、同一“图像地图”中的所有热点区域都要在图像地图的范围内,即所有<area>标记均要在<map>与</map>之间;

      3、在<area>标记中的 cords 参数设定的坐标格式要与shape参数设定的作用区域形状配套,避免出现在shape参数设置的矩形作用区域,而在cords 中设置的却是多边形区域顶点坐标的现象出现。

    展开全文
  • 图标区域页面布局

    2019-02-27 16:00:08
    在components下创建Icons.vue,取名HomeIcons, 在Home组件中引入并注册Icons组件: 设置元素icon的样式,高度自适应为父元素宽度的一半: 2. 显示八个小图标 – 先观察其中的一个小图标icon的位置和样式: – ...

    1. 创建新分支
    码云上创建功能分支:index-icons,把该分支拉到本地,然后切换到该分支:
    在这里插入图片描述components下创建Icons.vue,取名HomeIcons在这里插入图片描述
    Home组件中引入并注册Icons组件:
    在这里插入图片描述
    在这里插入图片描述
    设置元素icon的样式,高度自适应为父元素宽度的一半:
    在这里插入图片描述
    2. 显示八个小图标
    – 先观察其中的一个小图标icon的位置和样式:
    在这里插入图片描述
    – 首先我们要了解在CSS中,marginpadding的百分比数值总是相对于父元素的宽度来计算的。利用这个特性,只要将padding-top或者padding-bottom设置为与width相同的百分比,再将height设为0,最后通过定位实现自适应的正方形盒子:
    在这里插入图片描述– 复制八个相同的icon的效果:
    在这里插入图片描述
    – 最后实现图标的内容,每一个小方格里有一张图标和说明文字,先实现第一个:
    在这里插入图片描述
    – 相应的样式代码:

    .icon
      position: relative
      overflow: hidden
      float: left
      width: 25%
      height: 0
      padding-bottom: 25%
      .icon-img
        position: absolute
        top: 0
        left: 0
        right: 0
        bottom: .44rem  /*给p标签留出来的位置*/
        box-sizing: border-box
        padding: .1rem
        .icon-img-content
          display: block
          margin: 0 auto  /*图片实现自动居中*/
          height: 100%
      .icon-desc
        position: absolute
        right: 0
        left: 0
        bottom: 0
        height: .44rem
        line-height: .44rem
        color: $darkTextColor
        text-align: center
    
    

    – 最后复制八个图标的效果:
    在这里插入图片描述
    3. 图标区域逻辑实现

    1. 想要实现当有多于八个图标的时候可以左右循环拖动,将Swiper.vue组件中的代码(黄色部分)拷贝粘贴到icons标签中,包裹icon元素:
      在这里插入图片描述
    2. bug
      在图标下侧难以拖动,原因是Swiper-container的高度和图片一样高,没有将icons的高度完全包裹在内;:
      在这里插入图片描述
      解决:
      将icons之后的样式往前移一级,和icons平级。并改写icons的样式内容:
      在这里插入图片描述
      这样在icons范围内左右滑动都会引起轮播图的效果。
    3. 此时显示的数据实际上是我们写死的,而在实际中应该是由后端传递过来的。下面定义一组数据:
      在这里插入图片描述
      遍历数组,显示内容:
      在这里插入图片描述
    4. 实现分页
      – 现在我们的第九个图标在轮播图中显示不出来,通过computed属性实现分页:
    computed: {
          pages(){
            // 最终分页结果
            const pages=[]
            // 遍历icon列表
            this.iconList.forEach((item,index) => {
              // 每8条为一页;例:0-7为第一页
              // page为当前页码;
              const page =Math.floor(index/8)
              // 判断pages中当前页的存储数组是否已声明,未声明则声明当前页为数组格式;
              if(!pages[page]){
                pages[page]=[]
              }
              // 将当前icon信息放入对应的页码数组中;
              pages[page].push(item)
            })
            // 返回分页之后的icon集合;
            return pages
          }
        }
    

    在这里下载插件vue devtools调试工具,能帮助我们直观地理解,打开Chrome
    在这里插入图片描述
    在这里插入图片描述
    控制台有Vue这一选项:
    在这里插入图片描述
    我们就可以看到各组件的结构,以及分页效果:
    在这里插入图片描述
    – 接下来循环有多少个轮播页面:
    在这里插入图片描述
    同时遍历的元素也由item of iconList变为item of page。最后会实现根据数据项的不同,自动化的构建页码,可以实现多页切换的效果。

    4. 优化
    icon-desc文字较长时,由于盒子宽度限制显示不完全,我们要借助一个css样式完成文字的省略。text-overflow:ellipsis;–当文本溢出时是否显示省略标记。并不具备其它的样式属性定义。要实现溢出时产生省略号的效果还须定义:强制文本在一行内显示white-space:nowrap及溢出内容为隐藏overflow:hidden;,只有这样才能实现溢出文本显示省略号的效果。
    在这里插入图片描述
    方便全局修改,将这三个属性封装在styles下面的一个mixins.styl的文件里:
    在这里插入图片描述
    首先引入该文件:
    在这里插入图片描述
    然后直接使用别名:
    在这里插入图片描述
    5. 提交到线上
    git add .
    git commit -m add_icons 放到暂存区
    git push 本地的代码就同步到线上了
    git checkout master master上放的是整个工程的最新代码
    git merge origin/index-icons 合并masterindex-icons分支
    git push

    展开全文
  • 在查高德地图API的时候,看到这么一个接口: public static interface AMap.OnMarkerDragListener marker拖动事件监听接口。 所以就想啊,何不搞个可以拖动的多边形区域
  • ASP.NET MVC5使用Area区域

    2019-05-06 09:13:28
    在大型的ASP.NETmvc5项目中一般都有许多个功能模块,这些功能模块可以用Area(中文翻译为区域)把它们分离开来,比如:Admin,Customer,Bill。ASP.NET MVC项目中把各个功能分为不同Area的之后每一个Area都有独立的...
  • 你见过“联想”机器上联想公司赠送的“我的...这种效果的实质是把一幅图片划分为不同的作用区域,再让不同的区域链接到做不同事情的软件上去,在HTML中也有一个具有把图片划分成多个作用区域,并链接到不同网页的标...
  • 我们浏览网页时,经常看到一些图片上会出现特别的超链接,即在一张图片上有多个局部区域和不同的网页链接,比如地图链接。 这就是映射图像(Image Map),它是指一幅根据链接对象不同而被人为划分为若干指向不同链接...
  • python动态按区域显示

    千次阅读 2015-08-20 16:39:07
    python curses使用 ...原因:因为我的文件取名是curses.py,而系统也是用的curses.py,python执行时先从当前目录查找,所以不能和系统文件重名。 换个名字,比如改名为testcurses.py 就好了。 参考: ...
  • react-flux-textarea-bug 示例项目旨在突出React刷新 textarea 组件的问题。 塞纳里奥 行动 在输入中输入一些文本。 预期的 文本区域内的上一个文本。 实际的 文本区域为空。
  • 反向区域解析库文件自己取名为172.18.250.zone。 ]# vim 172.18.11.zone $TTL 3600 $ORIGIN 250.18.172.in-addr.arpa.设置自动补上完整IP的内容; @ IN SOA ns1.magedu.com. 403868144.qq.com. ...
  •   我的代码主要是来自利用opencv提取目标区域,可惜的是,这位大佬写的博客有代码没有图,所以我又找到了这个博客。   据我推测,后面的这个博客应该是完全复制的之前那位大佬的文章(前者是2018年发表的,后者...
  • 标记主要用于图像地图,通过该标记可以在图像地图中设定作用区域(又称为热点),这样当用户的鼠标移到指定的作用区域点击时,会自动链接到预先设定好的页面。其基本语法结构如下: 1 area ...
  • 取名催化剂,因Excel本身的强大,并非所有人能够立马享受到,大部分人还是在被Excel软件所虐的阶段,就是头脑里很清晰想达到的效果,而且高手们也已经实现出来,就是自己怎么弄都弄不出来,或者更糟的是还不知道...
  • 天上有很多星星,刚开始,你看到一颗很亮的星星,你给他取名:李雷星;告诉别人是你命名的。然后韩梅梅,魏华也去找星星,也找到了,也命名了,韩梅梅星,魏华星,然后李雷,韩梅梅,魏华相互承认这颗星的相互认可...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,672
精华内容 5,868
关键字:

区域取名