標籤:blog http java 使用 io strong art ar
1、單行代碼書寫
@代碼
2、多行代碼書寫
@{ //@加個大括弧就可以在裡面寫C#代碼了。
C#代碼第一行
C#代碼第二行
}
3、Razor模板引擎會自動判別代碼塊,但是當代碼存在二義性的時候,可以用小括弧澄清
@{ string name = "張三"; }// @name你好 報錯當前上下文中不存在名稱"name你好"*@@(name)你好
再給一個例子,就是調用泛型方法的時候,角括弧會導致Razor轉回標記,這個時候也可以用小括弧澄清:
@(Html.SomeMethod<Type>())
對於郵件名而言,Razor採用了一個簡單的演算法來判別,可以適應大多數情況,當出現Razor判別不出的時候,可以用兩個@號,@@來強制輸出@號。
4、HTML編碼
預設輸出的內容都是經過HTML編碼的,這對防止xss攻擊有一定作用,但是如果我想將一段代碼,就比如javascript代碼輸出到前台,這時候要用
@Html.Raw(content) 來保證內容不被編碼
@{ string message = "<script>alert(‘你好!‘);</script>"; } <span>@message</span> //實際輸出都瀏覽器的源碼 <span><script>alert('你好!');</script></span> <span>@Html.Raw(@message)</span> //實際輸出到瀏覽器的源碼 <script>alert(‘你好!‘);</script>
5、混合代碼與純文字
如果想在代碼塊裡向瀏覽器輸出一段內容,這時候就要用到
@:想輸出的文本 //單行
<text>想輸出的文本</text> //可以寫成多行
而且<text></text>還可以不寫在@{}代碼塊了,但是@:必須寫在代碼塊了,推薦使用<text></text>
@{
var i = 1;
@:@i; //用於輸出變數
}
6、MVC調用後台方法
controller代碼:
public class HomeController : Controller { public ActionResult Index() { ViewData["kk"] = "長江啊長江,你特別的長!"; return View("list"); } public static string GetName() { return "劉德華"; }
public string GetName1() { return "張學友"; }
}
View代碼:
@MvcStart.Controllers.HomeController.GetName(); //靜態方法的調用
@{ //非靜態方法的調用
var con = new MvcStart.Controllers.HomeController();
var name1 = con.GetName1();
}
@name1
注意,上面是靜態方法,靜態代碼最簡單,直接@寫上命名空間等等就可以了。而靜態方法只能寫成多行,通過new一個對象來引用。
@Url.Action("index") 此方法用於返回一個Action路徑,當需要Action路徑的時候可以用到,比如javascript的src是由程式產生的等等。