Asp.net templated razor delegates

7
ASP.NET MVC Templated Razor Delegates Jason

Transcript of Asp.net templated razor delegates

Page 1: Asp.net templated razor delegates

ASP.NET MVC

Templated Razor Delegates

Jason

Page 2: Asp.net templated razor delegates

Templated Razor Delegates

Index.cshtml

@{ Func<dynamic, object> strongTag = @<strong>@item</strong>; }

<span>This sentence is @strongTag("Jason").</span>   

Page 3: Asp.net templated razor delegates

@Helper Syntax

Index.cshtml

@helper Create(string name, int age)  {      <p>          <span>@name</span>          <span>@age</span>      </p>  }  

@Create("Jason", 18)

Page 4: Asp.net templated razor delegates

@Helper Syntax

Person.cshtml in App_Code Folder

@helper Create(string name, int age)  {      <p>          <span>@name</span>          <span>@age</span>      </p>  }  

Index.cshmtl

@Person.Create("Jason", 18) 

Page 5: Asp.net templated razor delegates

HelperResult Class

Index.cshtml

@{ var items = new[] { "one", "two", "three" }; } <ul>

@items.List(@<li>@item</li>) <ul>

Page 6: Asp.net templated razor delegates

HelperResult Class

RazorExtensions.cs

public static HelperResult List<T>(this IEnumerable<T> items, Func<T, HelperResult> template){return new HelperResult(writer =>

{ foreach (var item in items) {

template(item).WriteTo(writer); }});

}

Page 7: Asp.net templated razor delegates

Reference

Templated Razor Delegates http://haacked.com/archive/2011/02/27/templated-razor-

delegates.aspx

Helper syntax within Razor http://weblogs.asp.net/scottgu/archive/2011/05/12/asp-net-mvc-

3-and-the-helper-syntax-within-razor.aspx

MSDN-HelperResult http://msdn.microsoft.com/zh-tw/library/

system.web.webpages.helperresult(v=vs.111).aspx