转载自:http://www.cnblogs.com/lori/

当我们使用razor作为页面引擎时,它的视图文件扩展名为cshtml或者vbshtml,而之前作为分部视图的ascx文件,进行razor之后,也是cshtml,这与非razor引擎有些不同,在这方面,官方并没有显式把分部视图与标准视图分开,有时,我们在开发时,可能会出现一些混乱了,今天主要来说一下,如何正确的使用分部视图!

分部视图在action中返回一定要用PartialView(),而不要偷懒使用View(),因为,如果你使用View()渲染视图,系统会认为你是一个标准视图,会为你加个默认的母板页(Layout),除非你显式的设置了Layout这个属性。

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhcAAAA5CAIAAAAKgp5wAAANMklEQVR4nO1dT2jbWBp/ufTW23hPVnq099TCnBa1muS+HbOCvS3eYpgOCwu9ecGXcZZZzIBaZuzprYKyJsmlW9iDoSFmSDq+1T63sNDAHAdNaZxx09BMvAe99/T+yZJlN3Xq34/fQVakpyf5+77f+7735JDDo7cgCIJLzoOffv7624d1zz/46ecP3pmLRfKv7/4NgiC45Pz624d/+Vv9T3/9xz/vPfzgnblYJL//w59BEARBMBvJ+Pi/YwAAAADIBKgIAAAAkB1TqcinqQkAAAAsBaZWkeY6IYQQcrn5G1QEAABg2TGlinx/mXxmSRuMvS8vCdICAAAALAWmU5Hm+qXbP4Y6Ya2tSSrSXBezEwAAAGApMK2KXG7+9un4+8uEECUXgYoAAAAsITKoiLV25ZPeGXIRAAAAIJuKrFlaRatw+wpUBAAAYOmQpaLV+/KSskyruU7WvsMaLQAAgKVD5tl1hchFAAAAlhHZV/quflHAvAgAAMCSY25vHUJFAAAAlhBz+wUUvHUIAACwhMDvaAEAAADZMZWKfJWaAAAAwFLgA/8y/C/DN6+OQBAEwYvEX9+eLIqKvDp6EwxHIAh+zDyoFbba0p6BSzbb7+Va4Lnw6Bgq8vGzXdpw/cN4dz2oFerF6kv60d8mpE5ZeNIPhqPeTrH0jDcV/ZXUCWnWerQFeb9E3ni71Kr1Jva2t1OMayfsTNTnFru0qc0J7ZC66x8q/dHuS3ggjP1qq1h9OertFKWeCH+K+bikFMxGor9NCk/6cV9QeEpvpxjZqi48avszmmUSNRuTuicx9DXdnLjJyY1M7IPJ0qY6uF9tGa4bQxYlDH9KMG+oyEfPfrVFmLOJ26PAGGqbtepW5MmRl/JoK7kT+xj5uXoJyebkcCDKFXcz0RnitsWP/jYxhirpeOm6omslqJq/TaJgEWmwJhJKmIuJesvGOBUJA1bV9FfxlDBSy0ZC5Ng9J7NMdy9yjDafHmeNxgZJs9YbtksbajspBlL9akuVzPeoIknmvUgqctchDPY352ru58xO5YyQMSGnjdcJOxP4opJ/4E3c2a+25CG8ZrX+tpAobLj+IfMEOv4S7DU0+latF52luqvq8/Vi9WXob8rorFh9KbpcZO7pchF+vD7oo4EmSUUkP5ww4mOjTtOFwmfSd5X7km8hfFDd8j3hLP1by07PrjuNpEjReWyROiH8yKeO1BP2Mf+fbvo2TZSjm/6sJHszHbxJrUj6RgYu/SgJ+VzMcqpbK5a2YozT2O14SqMTuRIQTFBf/hwUaimXIDaiMEg2rF0iRkUGyea9SCpy9CYYdss3Kp0s5ju9792YoydnYcMxCIZxZ2wLvlV+Hr/zoFYwx8d2aUOPyJFThcFd8PZRIAbTWHetUcdu0lEhi+Niy+EGNe44FUnORQYuH38pzsAPS1XRiqmGaaQxS6ifCP4W+TbTS6FN4TF6tk9NrvPYsvent1h/Vott+II2vKjYVDNGwXAUPHWm71ICzdFQC5px5/KvO7ITqiLRE56LWc7rZllyPLFZs1f2qy2phykGUrEdCDfURrTnll5FEs37IqiIx3KUPPvTbiXPP4rbQ89eCQ+1yjujYDjqVCxCnMZr0ykc1+chJ94pIWf2jTCfOGNXP6O5xe67PBmT/Dvx1tKqiOcQQvK3uuoVkxKRydbsbxPSdEuGkaNb2iKlZ+3ShlzMqbOx/8RBH/cTofjA3VWtP2TNRbjLtUvsoqypyBPSVLR6fbfQKhbqMWNM5tVh8NLGs6xLspuVtiT/NKpIFMF5TnC30qGnhFmLVX7u2Tx7eFHJi9d9EKmRlGGENLTJrEtUkWG3fC/6yP+U0GY9HKPwTrJb00+ZMKamX4cpvWuKEYqQzbY0AxGqCNf++ZhlIukYwhTBDSXiwpO+0VTovdAqlimbGbh8sJ+Qi0j5AR3fKCoSDAV34A88QUVM30UK874QKuLRwOo5PJh2Kk4YqYXtbnnVYjs9e8UJz2o4DovLYuPpchEvKrIlSk6nckaunwTDUbD7Lh9uSKpwXL4xTxXpPHb0RETdqVlb4ogmEII7NUfJ/aYY9NGrN91S6K7cpYU6g64iIo2zi72dItl0lfkMvR4t+YlZRdqlLbe04fp9V8xy4h6OcAk1F9FTfn5ps4rwgf9Tj5eY8kJm0Hls0RgdZQyxuYisDbFtmo5k3dBGJPKRnn2PCxLbVlIZ5aP+FRioDX6ZPIQjidKzKOmMDuAGPC+zjHcEicwwQoWQHETqnmrGU82QJzw32TiVw1S3FZ9wWhVJW9FSzPtCqEgUyoVgymWAbexWbDHUek44uTKTikzDTuWUaVgkGHNQETONMSUm0Mh1G9msJ09XtEutWnWrWO3XClvtYOAWntRKLTaYEurRyjSmXDhigz421OLt6yoysQxFQ4a/7fqH4tqqqE2xMJ1Y0ertuGJ6TjszcMOxpF49S5mLiFXBQFERfiLPEqIxPpFVRB8ipFcRc5uGI1mb+uWkI4UGhXTEs30vTJLsfdqCeQxuGt7GTjU1pcEB/yr1qOpvz8ksUzq4HMHDO9UkhOhrsdScOMXzSTs1uBXesno7kopIz2EuFS2DeS+wilBViLIKRScajlXeidTivajIdLnI+alIqkQkxgE0FYlMJ7SJKLiLq2mpN7ZLrVqv75JmsdAyuqvAg35PNj6l/jsxF6Hpc2HLLe2YpnbYoFVeqRWtHZCyE1Mu4u/I/WdFEjbOpf0xad7keRH5KsZcZMj28CqQPJafQUVi29SO5Bfqlv2JtS9TnhEMu2W/0nnq2Pue7Xt6y/FrYXkIi81FktVoU0pqZzbLFBSdiM5t1EobkWz42+ESkrS5yIQcJVUuMnClhZTCSDE6Xc3+56YiinlfBBVh4b7hyIWd3Yp9yxOEQcpjuHhQsRmOGo4wszL0bCvc7pZX57MkLEZFztjVM86LdCoWn+ZhFCsMk3cavEUu/sSoyJbL662SOdJTSOmZvLZSqXRL4UPsADuAje5NKhIOG6M3M6L6hmjxNGpogkRTB1mWklb6iqdzWaJy0tI1L42K6PduUhG2p+GnyEXo99st3yPiTLiqIjFtakeOguEoeFGx7xmm+ifMoAidrNi+VX4+ajy2lIKYKCGanExcX6fmImxN8I5RD+ZllpJ3mIP7wI2mrMVOsgzbYBjs9g0NCm9uJRRjtT6Iz5DK7WZb7LY47uHzKIUn/bmqiPQMF0lF7qoD/1AzOhWLfrzu5OVFwKquGGtfbC49f8srr0bJRNSsPnGdgd4pW6d7XF4dEzKO5kjImJBx/tZJeTXcyQ6gDGXGuHMUipzSQ+MKn5hlP8pyrJE2Hzi5oqW5a7TCRJ4qVwZ9vJa62ZZm1zekd8r090X8bSK+h6Us1BECgfqeh9pnvZ4+QUUENYp85qBWaEWvzgSxA2TX11b6mjxTWOkrBFw2lU3yD5ywNCQVvtQylyXvlFcPs7luU5vmI1kjimCYjpSm94XlwmFpTp6AEb41vY6U/mWa8Fxa56RzJMpgYj5maQiLamcOaoV6sZCcu6RTEXVlYL/akhQuuaLFKmMspVNXJdDshD9zriLzWOmrn7JIKjL9W4dCteoj5W4ln1cmilInItIoSVlfbzYdtaLFeUAL0ELZV2gwXDYzqQRhXp6fbXaddpv6Ie+GdLp6C2H/eSejJyCvGTV7V0ybwnPWBmuCuy7Zb3uY3pVhj3qDSoI0N66zWatuqYMJVcvFitZMZhlnV8pXz1eoT6ywSd7EbUCPvIZuKFN607wvwq1O9AVxMpL3Qc1FUlUOU5j3BVWRbnmVUMxlnS44IycNMPFzIOAHIszyXHhBVQQEQRBcCEJFQBAEwexcIBX59e3J0TEIgiB4kXjy7nRRVAQAAAC40Jj9/64DAAAAywuoCAAAAJAd06pI4fYVsvpFASoCAAAAjDPlIoXb65/0zqAiAAAAAFQEAAAAmAFQEQAAACA7oCIAAABAdmRao/X9ZfKZBRUBAAAAkIsAAAAA2QEVAQAAALIDKgIAAABkB946BAAAALIDv4ACAAAAZMdUKvKViQAAAMDyYtZfhv9l+ObVEQieK399e5JsmgAAnAtmVZFX+GeF4Lnz6BgqAgCLglnnRaAi4PkTKgIAi4OpVaS5TgghhFxu/gYVAT8MoSIAsDiYUkX4b5+wDaYiJ/bKaeO14u0n9sqYkDEh4/yt4+To4Dn5W1320bNXQrmy7BtOeWdeAcizVxytn1Ow4RBCiP0N23P/ZjuX6zT3967l2n+8HwxHg89z7Vyunbu698P9zu9y7VyuffXO/w5n7TlrVmhw786jXLSz04ztUjAcBbuVPCGEzHTv82WnckbImBDJbIw7g92KHRnGKICKAMAiYToVaa5fuv1jWMuy1tashFzEO42ibTK75dUoxjUciymHZ69Y81ORWdlw5EC8d+dR7ubgcH/vWu7R3/eD4SgY7u/djGRj8PnNwcwSwqm2dv8mE4/9vWtX936I61JM5xeADUcffOg7JdsIoCIAsEj4P7oIf153n7O0AAAAAElFTkSuQmCC" alt="" width="432" height="46" />

之前的程序代码:

1      public ActionResult PartialLogon()
2 {
3 return View();//会认识它的标准视图,所以会加上默认的Layout
4 }

当返回视图后,你的分部视图会被加上默认的母板页,这不是我们希望看到的,当然有些同学会不先麻烦的在页面上显式的加上Layout=null

事实上,如果你正确的返回分部视图,这行当然是不用加的,呵呵 。

正确的写法:

1      public ActionResult PartialLogon()
2 {
3 return PartialView();//会将页面的Layout自动设为null
4 }

怎么样,这回知道PartialView()与View()真正的区别了吧,呵呵!

我想这后我们把这两个东西换个名称,PartialView()=>渲染视图=>不带Layout

View()=>渲染分部视图=>自动加上Layout

(转载)MVC 4.0 PartialView()与View()真的一样吗?的更多相关文章

  1. GJM : Taurus.MVC 2.0 开源发布:WebAPI开发教程 [转载]

    Taurus.MVC 2.0 开源发布:WebAPI开发教程 转载自http://www.cnblogs.com/cyq1162/p/6069020.html 因是新手  粘贴时有一个版权问题 本文原 ...

  2. 返璞归真 asp.net mvc (9) - asp.net mvc 3.0 新特性之 View(Razor)

    原文:返璞归真 asp.net mvc (9) - asp.net mvc 3.0 新特性之 View(Razor) [索引页][源码下载] 返璞归真 asp.net mvc (9) - asp.ne ...

  3. asp.net MVC 4.0 View回顾——布局页与分部页

    asp.net MVC 4.0中总结 视图里加载部分视图几种方法 @RenderPage() 但它不能使用 原来视图的 Model 和 ViewData ,只能通过参数来传递. @RenderPage ...

  4. ASP.NET MVC 3.0 Controller基础

    ASP.NET MVC 3.0 Controller基础   1.Controller类与方法 Controller(控制器)是ASP.NET MVC的核心,负责处理浏览器请求,并作出响应.Cotro ...

  5. ASP.NET MVC 4.0的Action Filter

    有时候你想在调用action方法之前或者action方法之后处理一些逻辑,为了支持这个,ASP.NET MVC允许你自定义创建action过滤器.Action过滤器是自定义的Attributes,用来 ...

  6. MVC 4.0 Razor模板引擎 @Html.RenderPartial 与 @Html.RenderAction 区别

    近来在学习MVC 4.0,设置布局全局网页的页脚,使用了Razor语法 @{ Html.RenderPartial("Footer", Model.FooterData); } 但 ...

  7. 返璞归真 asp.net mvc (7) - asp.net mvc 3.0 新特性之 Controller

    原文:返璞归真 asp.net mvc (7) - asp.net mvc 3.0 新特性之 Controller [索引页][源码下载] 返璞归真 asp.net mvc (7) - asp.net ...

  8. [asp.net mvc 奇淫巧技] 04 - 你真的会用Action的模型绑定吗?

    在QQ群或者一些程序的交流平台,经常会有人问:我怎么传一个数组在Action中接收.我传的数组为什么Action的model中接收不到.或者我在ajax的data中设置了一些数组,为什么后台还是接收不 ...

  9. (转)ASP.NET Mvc 2.0 - 1. Areas的创建与执行

    转自:http://www.cnblogs.com/terrysun/archive/2010/04/13/1711218.html ASP.NET Mvc 2.0 - 1. Areas的创建与执行 ...

随机推荐

  1. 推荐IOS开发3个工具:Homebrew、TestFight、Crashlytics-备

    1. Homebrew 什么是Homebrew? Homebrew is the easiest and most flexible way to install the UNIX tools App ...

  2. 递归目录的shell脚本

    #! /bin/sh # 在其他目录运行时一定要加上这样的语句 # 尤其是配置在crontab里自动运行 cd `` #定义数据别名 alias statdb="/usr/local/mys ...

  3. Android 每隔3s更新一次title

    MainActivity.java public class MainActivity extends Activity { private static int i=0; @Override pro ...

  4. AndroidManifest.xml 文件里面的内容介绍

    <?xml version="1.0" encoding="utf-8"?> <!--package 包表示整个java应用程序的主要包名,而 ...

  5. 为什么使用Redis

    原文地址:http://igoder.iteye.com/blog/1969848 先解释一下软件编程中常见的一些概念: 抽象先于具象.这个抽象并非虚无的抽象,而是指事物尚未分化为具象之前的那个前体存 ...

  6. Hadoop-2.x的源码编译

    由于在Hadoop-2.x中,Apache官网上提供的都是32位版本,如果是生产环境中则需要自行编译64位,编译Hadoop-2.x版本方法如下: 安装编译源码所依赖的底层库 yum install ...

  7. prepareStatement的用法和解释

    1. PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程2. 使用 Statement 对象.在对数据库只执行一次性存取的时侯,用 Statement ...

  8. 【浅墨Unity3D Shader编程】之二 雪山飞狐篇:Unity的基本Shader框架写法&amp;颜色、光照与材质

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/40955607 作者:毛星云(浅墨)  ...

  9. mysql存储过程、函数和触发器的创建 [转]

    http://blog.itpub.net/559237/viewspace-438942/ 今天花了半天时间来研究mysql的存储过程函数和触发器的创建,觉得和oracle的大同小异,只是语法上更艰 ...

  10. poj 2454 Jersey Politics dfs

    这个题目第一步还是比较明显的,先把最小的n个值去掉,剩下的问题就是能不能把数据分成两半,使得每一半和都大于n*500,这个刚开始考虑了下dp的做法,但是复杂度不满足要求. 那么能想到的就是搜索了,实际 ...