除了设置ViewPage的泛型参数外,ASP.NET MVC中视图后面的代码的目的是什么?
答案 0 :(得分:12)
以下是我从my own post获取代码隐藏的原因列表。我相信还有更多。
是!有些观点根本不需要代码隐藏。
是!除了.cs文件之外,还要创建一个愚蠢的.designer文件。
是!在每个视图旁边找到那些小+符号会很烦人。
但是 - 在代码隐藏中不要放置数据访问逻辑真的不难。
他们肯定不是evil。
答案 1 :(得分:8)
最终,你问自己的问题是:
此代码A)处理,存储,检索,执行操作或分析数据,或B)帮助显示数据?
如果答案是A,则它属于您的控制器。如果答案是B,则它属于视图。
如果B,它最终成为一种风格问题。如果你有一些相当长的条件操作试图弄清楚你是否向用户显示了某些东西,那么你可能会隐藏属性中后面代码中的那些条件操作。否则,似乎大多数人使用< %%>将代码内联到前端。和<%=%>标签。
最初,我将所有我的显示逻辑放在< %%>内。标签。但是最近我在我的代码中添加了任何杂乱的东西(例如冗长的条件)以保持我的XHML清洁。这里的诀窍是纪律 - 开始在后面的代码中编写业务逻辑非常诱人,这正是你不在MVC中做的事情。
如果您正在尝试从传统的ASP.NET迁移到ASP.NET MVC,您可能会避免使用代码,直到您对这些实践有所了解(尽管它仍然不会阻止您将业务逻辑放入其中) < %%>。
答案 2 :(得分:3)
答案 3 :(得分:3)
this Blogpost是一个删除后面代码的工作示例。 我遇到的唯一问题是它无法在类上设置名称空间。
答案 4 :(得分:0)
代码隐藏提供了一些强大的输入以及您在视图中获得的智能感知支持。如果您不关心这两个功能中的任何一个,则可以将其删除。
例如,我通常使用NVelocity ViewEngine,因为它干净且非常直接。
答案 5 :(得分:-1)
这是一个很好的问题。如果不使用特定的MVC模式,ASP.NET环境中是否存在MVC。
查看= aspx
Controller = aspx.cs(codebehind)
Model = POCO(普通的旧C#/ VB / .NET对象)
我想知道为什么MVC框架的附加功能会有所帮助。几年前(2001年)我在Java nd MVC和Java Struts上做了很多工作,发现MVC中的概念是当时Internet应用程序组织和开发问题的解决方案,但后来发现代码隐藏简化了控制器概念,更快地开发和与他人沟通。我相信其他人不同意我,我对其他想法持开放态度。我对MVC看到的最大价值是用于Internet开发的前端控制器模式,即Internet应用程序的单一入口源。但是,另一方面,使用当前的ASP.NET技术实现该模式相当简单。我听到其他人说单位测试是推理。我也能理解,我们在2001年使用了JUnit和我们的MVC框架;但我并不认为它简化了使用te MVC框架的测试。
感谢阅读!