B\S备忘录13——终于有时间看看MVC了R2

  上次是随便的写了些自己对MVC的理解,这次写一点应用时发现的小东西。

  首先是我们创建视图的时候,会看到一个视图引擎,Razor模板。虽然每次都看见,但是还是没有明白,这个东西到底是干嘛的。今天没事看了看一些博客,终于是了解了一个大概。

  Razor大概类似的就是我们在ASP.NET中的Master模板页,不同的是,Razor是在master的基础上做的优化。在页面部分经常会出现要调用C#代码,这个时候要写一个这样的东西。

<asp:Literal id="litEval2" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "userName")%>' />
  <% %>这种调用的形式,在Razor中变成了这样子。直接使用@来表示调用C#代码。

<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" 

  这样不仅仅方便了我们编程,而且可以直接在页面写一些C#代码,比如这样。

@foreach(string s in list)
{
    if (string.IsNullOrEmpty(s))
    { 
        <li>null</li>
    }
    else 
    {
        <li>s</li>
    }
}
  好吧,这样可以玩的就更多了,有时候JS不熟悉的时候可以试试用这种方法写代码先。

  再然后是视图部分。这两天在按照UI的文档改界面,本来对页面就不熟悉,这下有机会多练习练习了。

  在MVC中,带“_”符号的界面,浏览器不能访问,“_viewstart”中就规定了页面的布局使用哪个布局。

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

  这个默认的生成的Shared文件夹下存放的都是共享的视图,比如布局啊,版权声明啊,错误处理啊,都可以放到这里。

  在布局视图中,我们就能画一下大体的框架,相当于以前用过的Master模板。

<!DOCTYPE html>
<html>
<head>
    <title>@ViewBag.Title</title>
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
    <script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
</head>
<body>
    <div class="page">
        <div id="header">
            <div id="title">
                <h1>我的 MVC 应用程序</h1>
            </div>
            <div id="logindisplay">
                @Html.Partial("_LogOnPartial")
            </div>
            <div id="menucontainer">
                <ul id="menu">
                    <li>@Html.ActionLink("主页", "Index", "Home")</li>
                    <li>@Html.ActionLink("关于", "About", "Home")</li>
                </ul>
            </div>
        </div>
        <div id="main">
            @RenderBody()
        </div>
        <div id="footer">
        </div>
    </div>
</body>
</html>

  这个是VS创建MVC自带的布局视图,大概就是这种样子,其中id为main的这个div中,调用了一个@RenderBody的方法,这个方法就是我们创建了别的分布视图,通过RenderBody来放到这个div中。比如如果出错页面的代码是这个样子的。

<h2>
    抱歉,处理您的请求时出错。
</h2>
  那么整个页面在拼接完成之后就是这样子的。

<!DOCTYPE html>
<html>
<head>
    <title>@ViewBag.Title</title>
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
    <script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
</head>
<body>
    <div class="page">
        <div id="header">
            <div id="title">
                <h1>我的 MVC 应用程序</h1>
            </div>
            <div id="logindisplay">
                @Html.Partial("_LogOnPartial")
            </div>
            <div id="menucontainer">
                <ul id="menu">
                    <li>@Html.ActionLink("主页", "Index", "Home")</li>
                    <li>@Html.ActionLink("关于", "About", "Home")</li>
                </ul>
            </div>
        </div>
        <div id="main">
            <h2>
                抱歉,处理您的请求时出错。
            </h2>
        </div>
        <div id="footer">
        </div>
    </div>
</body>
</html>

  还有RenderPage和RenderSection两种拼接的方法,不过大概意思差不多,这次就先不做了。还有一部分Html的方法,也是拼接页面用的,下次再说,这次先这样了。

  虽然这些知识很简单,但是还是对我有很大的帮助,既然我们出去不知道要做哪一部分的工作,那我们就把自己培养成什么工作都能做的人吧。

  Good Luck,Have Fun。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值