我喜歡微軟爲WebMatrix產品中的內聯編碼開發的Razor語法(http://en.wikipedia.org/wiki/Microsoft_WebMatrix)。我們可以在ASP.NET Webforms(* .aspx頁面)中使用Razor語法嗎?
既然Visual Studio SP1具有RTM'd,是否有可能(和/或計劃)在ASP.NET Webforms中使用Razor語法?
謝謝!
我喜歡微軟爲WebMatrix產品中的內聯編碼開發的Razor語法(http://en.wikipedia.org/wiki/Microsoft_WebMatrix)。我們可以在ASP.NET Webforms(* .aspx頁面)中使用Razor語法嗎?
既然Visual Studio SP1具有RTM'd,是否有可能(和/或計劃)在ASP.NET Webforms中使用Razor語法?
謝謝!
我們(ASP.NET團隊)目前沒有計劃使用Razor語法來支持WebForms頁面模型。此外,我們不太可能認真考慮這一點,因爲這兩種模式太過不同,無法將兩者結合在一起。
您可以使用可從Codeplex獲得的RazorEngine集成它。它允許你在MVC之外處理剃鬚刀。儘管你沒有從MVC版本的Razor獲得所有的功能,例如@Html
和@Url
等。
嘿,我想。 :)只是覺得他問如何使用mvc以外的剃鬚刀 - 但你的答案更有意義。 – Buildstarted 2011-03-10 20:22:07
您可以使用沒有MVC的Razor頁面;這被稱爲ASP.Net WebPages。
只需將.CSHTML文件添加到正常的ASP.Net 4.0項目。
我explained how this works在我的博客。
我敢說微軟已經考慮過了,但在這個問題上沒有官方的說法。由於您不應該在ASPX文件中使用C#或VB代碼,因此您不得不想要向Web窗體添加Razor支持。後面的代碼仍然是一個(部分)類文件。你不會把Razor放在網頁或MVC的類文件中。並且交換服務器控件和Html Helpers的所有良好的聲明性內容可以消除去Web窗體路線IMO的關鍵原因之一。
@ SomeControl.ClientID而不是<%= SomeControl.ClientID%>似乎是在webforms中需要razor的一個很好的理由。 – Arshia001 2016-02-02 07:47:26
這真的不是那麼難做到。現在正在處理它。從CodePlex獲取RazorEngine。它允許您在運行時將Razor cshtml/vbhtml文件編譯到類中。
然後,您可以採用該類,並使用它的Render方法中的ASP.Net服務器控件。這是將HTML從服務器控件的主體中取出的好方法。非常清潔。
現在,您還可以添加一些可以從Razor調用的方法。例如,添加像RenderChild這樣的東西。此外,您可以將服務器控件本身設置爲Razor可用的模型。然後你可以調用服務器控件。包括做一些事情,比如抓住它的一個子控件並調用Render。
那麼這意味着什麼**您可以在基於Web表單的應用程序中使用.cshtml/.vbhtml文件。敬請期待。** http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx#7553469? – Programista 2011-04-29 21:38:30
目前還沒有這樣的計劃。您可以擁有經典的WebForms應用程序並向其中添加Razor文件,但它們不能具有諸如「'」之類的控件。 –
marcind
2011-04-30 03:06:49