2011-08-29 29 views
6

ASP.NET Web Form motor kodunu takip ettiğimi, nasıl Razor motorunda bunu nasıl ifade edebilirim?Aşağıdaki Eşanlamlı Razor Sözdizimi?

<script type="text/javascript"> 
    var initialData = <%= new JavaScriptSerializer().Serialize(Model) %>; 
</script> 

Teşekkür Hardy

cevap

5

aşağıdaki kullanır:

<script type="text/javascript"> 
    var initialData = @Html.Raw(new JavaScriptSerializer().Serialize(Model)); 
</script> 

Bu tam olarak örneğin (Html.Raw unutmayın) ile aynıdır.

Eğer çıktıyı (html) kodlanmış istediğiniz veya kod IHtmlString dönerse:

<script type="text/javascript"> 
    var initialData = @(new JavaScriptSerializer().Serialize(Model)); 
</script> 

Sen @new JavaScriptSerializer(..) kullanarak ilk boşlukta Jilet ayrıştırıcı durmasına izin çünkü sonra (@(...) sözdizimi kullanmak istiyorsunuz yeni). Böyle

sözdizimi: Bu new JavaScriptSerializer diyoruz, ama çıkış kaybolacak çünkü

<script type="text/javascript"> 
    var initialData = @{ new JavaScriptSerializer().Serialize(Model); }; @* <== wrong *@ 
</script> 

çalışmaz.

+0

Harika, işe yarıyor! – hardywang