打開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"> < %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、模闆頁
[email protected]
ViewBag.Title 就是 顯示網頁的title ,可以在layout裡面 定義一個 @ViewBag.Title - XXX網站
[email protected]("~/Content/css")
對應App_Start/BundleConfig下添加的CSS引用組
[email protected]("~/Content/js")
對應App_Start/BundleConfig下添加的js引用組
[email protected]()
輸入
@Html.ActionLink("這是一個連接配接", "Index", "Home")
輸出
<a href="/">這是一個連接配接</a>
[email protected]("視圖")
可以将視圖放在同級目錄下,或者放在Shared目錄下,除此之外的就不行了。
Partial 回傳的一個Object (MvcHtmlString), 回傳一個String把一堆Html給回傳出來, 然後寫進到首頁面上
[email protected]()
母版頁的概念,可以認為這裡放置引用模闆頁的内容
[email protected]
在html代碼中輸出年份
2、Login.cshtml
[email protected] 傳入model對象類型
[email protected]{}
@{}表示一個代碼塊
2.3@using (Html.BeginForm("Index", "Home", FormMethod.Get, new { name = "nbform", id = "nbform" }))
指定表單送出方式和路徑等
[email protected]()
設定複選框input元素