您的位置:首页 > 其它

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

2015-04-29 20:33 477 查看
  上次是随便的写了些自己对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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: