Harder, Faster, Better, Stronger

September 25, 2011

ASP.Net MVC 3 – View and Razor Engine

Filed under: .Net — wrach @ 1:38 am

 

Razor Engine

ch02_programmingintro-8

ASP.Net MVC มีความสามารถรองรับ concept ของ View Engine
View Engine เป็น Render หน้า web ที่ Browser ทั่วไป โดย View Engine จะมี Syntax และความสามารถแตกต่างกันไป
ASP.Net MVC จะมี View Engine มาให้อยู่แล้วสองตัวคือ Razor และ ASP.Net แต่จะมีที่ Support อยู่อีกคือ Spark และ nhaml (นิยมใช้ใน Ruby)

ใน Course นี้จะใช้ Razor เป็นหลัก โดย Razor นี้เพิ่งเพิ่มมาใน ASP.Net และ ASP.Net MVC version 4
นอกจาก ใน ASP.Net MVC แล้ว Razor ยังใช้ได้ใน ASP.Net Web Form ได้ด้วย

Razor ถูกออกแบบมาให้
    – Compact, Expressive, and Fluid กระทัดรัด มี syntax น้อย เวลาเขียนใช้ร่วมกับ html ได้สะดวกไม่กระโดดข้ามไปมา อยู่รวมกันอย่างสวยงามเป็นระเบียบ
    – Easy to Learn
    – Is not a new language
    – Works with any Text Editor
    – Has great Intellisense

Guide to Razor Syntax

1. ขึ้นต้นบรรทัดด้วย @ แล้วจะเป็น Single Statement หรือ Multi-Statement

image

2. ปิด Block ของ Statement ด้วย {…}

image

3. Multi-Statement ขั้นด้วย Semi Colon ;

image

4. ใช้ var ได้ ในการประกาศตัวแปร และเรียกใช้ Class ต่างๆของใน .Net และใน Project

image

5. ใช้ " " (Double Quotation Mark) เวลา Assign String
6. Case sensitive
7. โดยแล้วมากจะใช้เพื่อแสดง Value ของ Object และ HtmlHelper
8. เขียนเงื่อนไขได้

http://www.asp.net/webmatrix/tutorials/2-introduction-to-asp-net-web-programming-using-the-razor-syntax

HtmlHelper

เป็น Class ที่ช่วยสร้าง Tag HTML โดยมีที่ใช้บ่อยๆเช่น

Method Example HTML Tag
@Html.TextBox
@Html.TextBox("Text1","value")
<input id="Text1" name="Text1" type="text" value="value" />
@Html.TextArea
@Html.TextArea("textarea1","value line1\n value line 2")

<tr><td></td><td><textarea cols="20" id="textarea1" name="textarea1" rows="2">

value line1

value line 2</textarea></td></tr>

@Html.CheckBox
@Html.CheckBox("check1",true)
<input checked="checked" id="check1" name="check1" type="checkbox" value="true" />
@Html.ActionLink
@Html.ActionLink("List","List","Home")
<a href="/Home/List">List</a>
@Html.Hidden
@Html.Hidden("Hidden1","hidden value")
<input name="check1" type="hidden" value="false" />
@Html.Label
@Html.Label("EditText","Label Text")
<label for="EditText">Label Text</label>
@Html.RadioButton
@Html.RadioButton("Radio1","r1")
<input id="Radio1" name="Radio1" type="radio" value="r1" />
@Html.DropDownList*

@Html.DropDownList("Select1", new[]  {

    new SelectListItem {    
        Text = "Option 1",           
        Value = "opt1"         
    },         
    new SelectListItem {          
        Text = "Option 2",           
        Value = "opt2"         
    },         
    new SelectListItem {           
        Text = "Option 3",           
        Value = "opt3"          }    
})

<select id="Select1" name="Select2">

<option value="opt1">Option 1</option>

<option value="opt2">Option 2</option>

<option value="opt3">Option 3</option>

</select>

* @Html.DropDownList ปกติใช้ กับ SelectListItem ซึ่งแปลงจาก IEnumerable

Advertisement

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Theme: Rubric. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.