Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们可以在ASP.NET Webforms(*.aspx页面)中使用Razor语法吗?_Razor_Webforms - Fatal编程技术网

我们可以在ASP.NET Webforms(*.aspx页面)中使用Razor语法吗?

我们可以在ASP.NET Webforms(*.aspx页面)中使用Razor语法吗?,razor,webforms,Razor,Webforms,我喜欢微软为WebMatrix产品()中的内联编码开发的Razor语法 既然Visual Studio SP1已经实现了RTM,那么是否有可能(和/或计划)在ASP.NET Webforms中启用Razor语法?您可以使用从提供的RazorEngine集成它。它允许您在MVC之外处理razor。尽管你没有从MVC版本的Razor中获得所有功能,例如@Html和@Url等。你可以在没有MVC的情况下使用Razor页面;这称为ASP.Net网页 只需将.CSHTML文件添加到普通的ASP.NET4.

我喜欢微软为WebMatrix产品()中的内联编码开发的Razor语法


既然Visual Studio SP1已经实现了RTM,那么是否有可能(和/或计划)在ASP.NET Webforms中启用Razor语法?

您可以使用从提供的RazorEngine集成它。它允许您在MVC之外处理razor。尽管你没有从MVC版本的Razor中获得所有功能,例如
@Html
@Url
等。

你可以在没有MVC的情况下使用Razor页面;这称为ASP.Net网页

只需将.CSHTML文件添加到普通的ASP.NET4.0项目中即可


我在我的博客中提到了这一点。

我敢说微软已经考虑过了,但没有官方的说法。由于ASPX文件中不应包含C#或VB代码,因此您必须考虑向Web表单添加Razor支持的意义。后面的代码仍然是(部分)类文件。你们不会把Razor放在那个里,就像你们不会把它放在网页或MVC的类文件中一样。在我看来,将服务器控件和所有优秀的声明性内容替换为Html助手,可以消除使用Web表单路线的一个关键原因。

我们(ASP.NET团队)目前没有计划使用Razor语法支持WebForms页面模型。此外,我们不太可能认真地考虑这一点,因为模型太不同了,以至于不能使这两个因素结合在一起。

< P>这确实不是那么难做到的。现在就开始工作。从CodePlex抓取RazorEngine。它允许您在运行时将cshtml/vbhtml文件编译成类

然后,您可以获取该类,并在其呈现方法中从ASP.Net服务器控件使用它。这是一种将HTML从服务器控件主体中取出的好方法。干净多了


现在,您还可以添加一些可以从Razor调用的方法。例如,添加RenderChild之类的内容。此外,您可以将服务器控件本身设置为Razor可用的模型。然后可以调用到服务器控件中。包括抓取它的一个子控件并调用Render等操作。

Heh,我猜。:)只是觉得他在问如何在mvc之外使用razor,但你的回答更有意义。当然,你可以创建.CSHTML或.VBHTML文件,但问题是razor语法是否可以(或将)在*.ASPX页面中使用。@cpuguru:当然不能。那没有任何意义。你不能(通常)在一个文件中使用两种相互竞争的语言。我认为Razor是一种语法(不是一种语言)?喜欢你博客上的解释。感谢您提供的链接,它帮助我更好地理解Razor。区别在于C#的词汇语法没有任何有意义的改变。只有语法流。。。如果语法如此不同,您必须重新学习标记化,那么它将不再是同一种语言。就我的$0.02,也许其他人有比这更好的视角。那么这意味着你也可以在基于web表单的应用程序中使用.cshtml/.vbhtml文件。请继续收看?目前还没有这样的计划。您可以使用一个经典的WebForms应用程序并向其中添加Razor文件,但它们不能使用诸如
@SomeControl.ClientID之类的控件,而这似乎是在WebForms中使用Razor的一个很好的理由。