6
假設我有以下ASP.NET Web Form引擎代碼,我該如何在Razor引擎中表達它?以下陳述的等效剃刀語法?
<script type="text/javascript">
var initialData = <%= new JavaScriptSerializer().Serialize(Model) %>;
</script>
感謝 哈迪
假設我有以下ASP.NET Web Form引擎代碼,我該如何在Razor引擎中表達它?以下陳述的等效剃刀語法?
<script type="text/javascript">
var initialData = <%= new JavaScriptSerializer().Serialize(Model) %>;
</script>
感謝 哈迪
我會用以下內容:
<script type="text/javascript">
var initialData = @Html.Raw(new JavaScriptSerializer().Serialize(Model));
</script>
這是完全一樣的例子(注意Html.Raw
)。
如果你想編碼的輸出(HTML)或您的代碼返回IHtmlString:
<script type="text/javascript">
var initialData = @(new JavaScriptSerializer().Serialize(Model));
</script>
您想使用@(...)
語法,因爲使用@new JavaScriptSerializer(..)
讓在第一空間的剃刀解析器停止(後新)。
這樣的語法:
<script type="text/javascript">
var initialData = @{ new JavaScriptSerializer().Serialize(Model); }; @* <== wrong *@
</script>
不起作用,因爲它會調用new JavaScriptSerializer
,但丟棄的輸出。
很好,它的工作原理! – hardywang