首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Asp.Net Webforms Vs Asp.Net WebSite(Razor) Vs Asp.Net MVC

Asp.Net Webforms Vs Asp.Net WebSite(Razor) Vs Asp.Net MVC
EN

Stack Overflow用户
提问于 2012-07-08 04:16:15
回答 6查看 32.3K关注 0票数 30

我认为微软肯定有理由用剃刀语法来增强ASP.Net。

在visual的对话框中,还有另一个创建ASP.Net的选项(Razor)。我第一次遇到Razor这个术语时,我读了一本关于Asp.Net MVC的书,我不知道它存在于ASP.Net

在问这个问题之前,我决定为ASP.Net ( Razor )创建一个测试项目,看看它与普通的ASP.Net webforms和ASP.Net MVC有什么不同。我没有发现像MVC中的模型/视图/控制器文件夹。

我发现母版页被不同地指定,母版页更干净,不再是<asp:ContentPlaceHolder />

但我的问题是:

  • 我注意到它使用的是.cshtml,后面没有代码吗?
  • ASP.Net (Razor)与ASP.Net MVC的异同
  • 它是否可以扩展到类似ASP.Net MVC的功能,例如添加控制器、视图/模型、自定义路由?
  • 当我们有ASP.Net MVC时,为什么会存在这种情况呢?这难道不鼓励人们不愿意使用ASP.Net MVC吗?
  • ,你为什么选择ASP.Net+Razor而不是ASP.Net MVC?

更新: ASP.NET网页是特别设计的。,使已经熟悉ASP.NET网页是特别设计的。的用户可以轻松地将服务器处理添加到页面中。对于刚开始编程的学生、爱好者和一般人来说,这是一个很好的选择。对于具有非ASP.NET web技术经验的开发人员来说,这也是一个很好的选择。 Update ASP.NET网页 ASP.NET Web Pages针对的开发人员希望类似于PHP那样简单的web开发故事。在Web页面模型中,创建HTML页面,然后向页面添加基于服务器的代码,以便动态控制该标记的呈现方式。网页是专为轻量级框架而设计的,对于熟悉HTML但可能没有广泛编程经验的人来说,它是进入ASP.NET的最简单的切入点--例如,学生或爱好者。对于熟悉PHP或类似框架的web开发人员来说,这也是开始使用ASP.NET的好方法。 Asp.Net网页

拜托,我需要你的技术意见。谢谢。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-07-08 04:51:55

这是个很好的问题。首先,让我们来描述一下Razor。

剃须刀是一个引擎,它解析服务器端代码并发射ASP.NET,就像Html一样,只有不同的、可以说更精简、更简洁的语法。

剃刀诉:在ASP.NET Web中,您必须识别何时开始使用‘%’编写服务器代码,然后在编写服务器代码时需要用'%>‘标识这一点。我喜欢ASP.NET网络表单,但这很笨重。使用Razor,您可以确定何时开始使用'@‘编写服务器代码,然后下次开始编写服务器标记(从’<‘开始)时,就会“找出”服务器代码已经完成了。这是一种更简洁的方式来编写混合了一些服务器代码的html。

Web是一个创建简单ASP.NET应用程序的框架。ASP.NET MVC是一个使用web或Razor使用模型-视图-控制器(,MVC)模式创建Web应用程序的框架。Web是一个使用ASP.NET表单呈现引擎创建web应用程序的框架。

最终的目标是根据正在构建的应用程序的复杂性提供选择。理解每一个帮助你为你的应用做出正确的选择。

其他链接:

  • ScottGu的博客-介绍Razor
  • ScottGu的博客-介绍WebMatrix
  • 带有Razor语法的ASP.NET网页
票数 23
EN

Stack Overflow用户

发布于 2012-07-15 14:25:34

在MVC模式中,M是模型,C是控制器,V是视图。因此,非常自然地,在ASP.NET MVC模型中,有一个视图引擎的概念。剃须刀只是提供的视图引擎之一。另一个是开箱即用的“旧”WebForms引擎(顺便说一句,您也可以编写自己的视图引擎)。因此Razor没有代码的概念,代码背后保留在WebForms视图引擎的边界内。

所以这说明了一切。剃须刀处理MVC的视图部分(如果您选择使用它而不是WebForms部分)。这与M或C无关。

就我个人而言,如果您选择ASP.NET MVC模式,或者使用没有MVC的普通WebForms,我肯定会选择Razor引擎,因为Razor的设计要比Webforms少一些,使用起来更简单。它也只是最近的,所以它试图成为..。简单来说更好:-)

另外,Razor也可以在ASP.NET MVC之外使用。它是在完全不依赖MVC或Web程序集的程序集中实现的。有关这方面的更多信息,请参见这里:http://www.west-wind.com/weblog/posts/2010/Dec/27/Hosting-the-Razor-Engine-for-Templating-in-NonWeb-Applications

票数 21
EN

Stack Overflow用户

发布于 2012-07-08 04:23:11

默认情况下不存在代码后面的代码,但是您可以轻松地使您的剃须刀文件继承自您的自定义类:

代码语言:javascript
复制
@inherits Index

然后

代码语言:javascript
复制
public class Index : WebViewPage { }

(这里有更多信息:http://www.compiledthoughts.com/2011/01/aspnet-mvc3-creating-razor-view-engine.html)

这更像是一种传统的网络方式,更像asp3 3。mvc的不同之处在于,mvc提供了一个支持实际应用程序的巨大框架(使用路由、控制器和操作,而不仅仅是“标记中的代码”)。

我认为它的存在是为了制造非常简单的东西,但我不知道.

最后,我总是选择带有剃须刀的asp.net mvc。

希望它能帮上忙

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11380607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档