MVC中@理解

来源:互联网 发布:淘宝二手商品3c认证 编辑:程序博客网 时间:2024/05/29 14:22

打开mvc项目时,打开Login.cshtml文件就会发现各种@的用法

首先需要说一下技术演变历史,对理解这个很有帮助

一、ASP.NET

asp.net需要在.aspx页面加入c#或者vb代码

1、<%=%> 是输出,里面放的变量名,如:

<div> < h1>Hello World</h1> < p>Welcome to ASP.NET on <%= DateTime.Now.ToString() %></p> < /div>

输出结果为:

HelloWorld

Welcome to ASP.NET on 20011-11-10 14:25:40

(这个例子很典型)

2、 <%#%> 是赋值,它是数据的绑定的语法,必须要调用改控件的DataBind()方法才可以执行。

如:<%# DataBinder.(Container.DataItem,"ClassName") %>

完整代码:<asp:DataList ID="ClassList" runat="server"> < ItemTemplate> <%# DataBinder.(Container.DataItem,"ClassName") %> < /ItemTemplate> < /asp:DataList></td>

3、<%@ %> 表示:引用

如在很多.aspx页面中,都可以看到如下的代码:

<%@ PageLanguage="C#" CodeFile="Default.aspx.cs"Inherits="_Default" %>

4、<%%>中间一般放函数或者方法,典型的asp程序写法。

例如:<trbgcolor="#ffffff"> < td height="20"> < div align="center">类别:</div> < /td> < td height="9">&nbsp; < %ST_getList();%> < /td> < /tr>

二、从ASP.NET MVC 3开始加入了Razor引擎"@"

Razor是为了将所需的字符和击键数减少到最小,Razor在内部帮我们做了闭合“%>”

<% for(int i=0; i<3; i++) { %>
    <p>现在是<%= i %></p>
<% } %>

@{ for(int i=0; i<3; i++)            
    {
        <p>现在是 @i</p>
    }
}
的变化

三、Razor视图引擎加入后,扩展出的@helper功带来强大的功能。

1、模板页

1.1@ViewBag.Title

     ViewBag.Title 就是 显示网页的title  ,可以在layout里面 定义一个 @ViewBag.Title - XXX网站


1.2@Styles.Render("~/Content/css")

   对应App_Start/BundleConfig下添加的CSS引用组


1.3@Scripts.Render("~/Content/js")

   对应App_Start/BundleConfig下添加的js引用组


1.4@Html.ActionLink()

  输入
  @Html.ActionLink("这是一个连接", "Index", "Home")
   输出
  <a href="/">这是一个连接</a>

1.5@Html.Partial("视图")

  可以将视图放在同级目录下,或者放在Shared目录下,除此之外的就不行了。
  Partial 回传的一个Object (MvcHtmlString), 回传一个String把一堆Html给回传出来, 然后写进到主页面上

1.6@RenderBody()

  母版页的概念,可以认为这里放置引用模板页的内容


1.7@DateTime.Now.Year

  在html代码中输出年份


2、Login.cshtml

2.1@model
  传入model对象类型

2.2@{}
  @{}表示一个代码块
2.3@using (Html.BeginForm("Index", "Home", FormMethod.Get, new { name = "nbform", id = "nbform" }))
指定表单提交方式和路径等
2.4@Html.CheckBoxFor()
设置复选框input元素
0 0
原创粉丝点击