asp.net mvc里的母版页和自定义控件

    (1)母版页

    在mvc 样例程序LogOn.cshtml 里没有看到<html></html>这样的标记,我猜他有类似于webform里母版页的东东,最后发现在Views目录下,有一个_ViewStart.cshtml 文件,有一句代码:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

  这段代码用来指定母版页的。

  logOn.cshtml 的代码里没看到指定母版页的语句,那么它估计是调用了_ViewStart.cshtml,什么时候调用的,不清楚,大概asp.net mvc默认的吧。

而在_Layout.cshtml 里:

<div id="main">
@RenderBody()
</div>

  @RenderBody 估计是显示LogOn.cshtml 等页面内容的吧。

  (2) 用户控件

  在_Layout.cshtml 里发现了这么一句:

  @Html.Partial("_LogOnPartial")

  Html.Patial 的含义:  Renders the specified partial view as an HTML-encoded string.渲染部分视图,想来就是用户控件了。

  还有另外一种写法:

   @{Html.RenderPartial("_LogOnPartial");}

   看起来上面的简单好写,不过两者还是有区别滴。

 Partial输出到临时变量StringWriter ;RenderPartial输出到HtmlHelper.ViewContext.Writer上(即直接输出到Response)。

    _Layout.cshtml _LogOnPartial.cshtml 都放在Views/Shared 目录下,于是乎,我明白了,shared目录是干嘛的。

好,明白了,asp.net mvc 里母版页和用户控件怎么写,怎么调用啦。

   

posted on 2013-05-07 17:20  xinchuang  阅读(4117)  评论(0编辑  收藏  举报