首页 文章

Razor / CSHTML - 我们拥有什么样的好处? [关闭]

提问于
浏览
74

任何人都使用新的CSHTML页面功能,并发现他们更喜欢这种新的视图引擎语法优于现有的ASP.NET MVC默认视图引擎或Web表单,如果是,为什么?那么CSHTML比MVC或Web表单更具优势,反之亦然?

只是好奇听到人们接受它 .

4 回答

  • 44

    其中一个好处是Razor视图可以在单元测试中呈现,这是以前的ASP.Net渲染器不容易实现的 .

    ScottGu's announcement开始,这被列为设计目标之一:

    单元可测试:新的视图引擎实现将支持单元测试视图的功能(无需控制器或Web服务器,并且可以托管在任何单元测试项目中 - 无需特殊的应用程序域) .

  • 3

    Ex Microsoft Developer's Opinion

    我曾在MSDN网站的核心团队工作过 . 现在,我将c#razor用于我的编程团队的电子商务网站,我们将重点放在具有后端c#razor页面和LINQ-Entity内存数据库的jQuery前端上,因此即使在嵌套的for循环中,页面的响应时间也是1-2毫秒并且没有页面缓存 . 我们不使用MVC,只使用普通的ASP.NET,其中razor页面使用URL重写模块映射到IIS 7,没有ASPX页面或ViewState或服务器端事件编程 . 它没有额外的(不必要的)层MVC放在正则表达式挑战的代码结构中 . 对我们来说,少即是多 . 它的所有精益和卑鄙,但我为MVC提供了可测试性的道具,但这就是全部 .

    Razor页面没有像ASPX页面那样的事件生命周期 . 它只是呈现为一个请求页面 . C#是一种非常棒的语言,Razor很好地完成了它的工作 . 使用泛型和linq的匿名输入使用c#和razor页面使生活变得如此简单 . 使用Razor页面可以帮助您更轻松地思考和编码 .

    Razor和MVC的一个缺点是没有类似ViewState的持久性 . 我需要为此实现一个解决方案,所以我最终为此编写了一个jQuery插件 - > http://www.jasonsebring.com/dumbFormState这是一个HTML 5离线存储支持的表单状态插件,现在可以在所有主流浏览器中使用 . 它目前仅适用于表单状态,但您可以使用window.sessionStorage或window.localStorage非常简单地在回发甚至页面请求中存储任何类型的状态,我只是打算使其自动保存并根据URL和表单索引命名它你不必考虑它 .

  • 7
    • 默认编码所有内容!这非常巨大 .

    • 可以编译声明性帮助程序,因此您无需执行任何特殊操作即可共享它们 . 我认为他们将在某种程度上取代.ascx控件 . 你必须跳过一些箍在另一个项目中使用.ascx控件 .

    • 你可以制作一个很好的部分 .

  • 43

    最大的好处是代码更简洁 . VS编辑器还将具有某些其他视图引擎所没有的IntelliSense支持 .

    声明式HTML帮助程序看起来也很酷,因为在C#代码中执行HTML帮助程序让我想起了ASP.NET中的自定义控件 . 我认为他们从partials中获取了一个页面,但是使用了内联代码 .

    因此对asp.net视图引擎有一定的好处 .

    与像火花一样的视图引擎形成鲜明对比:

    Spark仍然更简洁,你可以将if和循环保存在html标签本身中 . 标记对我来说仍然感觉更自然 .

    你可以准确地编写部分代码来执行声明性帮助,你只需将变量传递给partial,你也可以使用相同的东西 . 这已经有很长一段时间了 .

相关问题