我知道这个问题之前已经被问过,并且我阅读了所有答案,但他们仍然没有给我我正在寻找的答案。我需要一些具体的东西。我自愿向我们组中的其他开发人员进行 MVC 演示,这迫使我学习它。每个人都面临的一个大问题是:“MVC 可以带来哪些我们在 ASP.NET 中做不到的事情,或者 MVC 可以做得更快。我刚刚经历了 Nerd Dining,实际上创建了一个完整的网站,有点模仿 Nerd Dining 。但是,尽管 Scott Guthrie 在这方面做了出色的工作,但仍有很大的空白没有得到解答,例如,如何在列表页面上使用按钮抛出一个文本框并进行简单的搜索。在 asp.net 中,我会在页面上抛出一个文本框、按钮和网格,并将其绑定到存储过程,然后我就走了。MVC 中的等效项是什么。我想我需要一个关于如何在不使用 Linq-to-Sql 的情况下使用 MVC 的非常好的教程。
我知道我对此有点喋喋不休,但这是一个非常严肃的问题,似乎仍然没有答案。
顺便说一句,MVC 的视图页面带回了经典 asp 的噩梦,其中包含我们在使用页面后代码时远离的所有内联代码。是的,MVC 有控制器和模型类,它们很棒,但我仍然不喜欢 html 中的经典 asp 标签。
请帮助我,我真的很喜欢 MVC 的概念并希望它成功,但我需要更多!
如何使用按钮在列表页面上放置一个文本框并进行简单的搜索。在 asp.net 中,我会在页面上放置一个文本框、按钮和网格,并将其绑定到存储过程,然后就可以走了
这正是“经典”ASP.NET 又名 WebForms 背后的最大问题。
您不应该考虑页面、按钮和事件。
您应该学习网络工作原理的基础知识。然后您就会明白网络是用 HTTP 协议及其命令 GET、POST 等来表达的。表示是 HTML、CSS 和文档对象模型,这是 JavaScript 发挥作用的地方。事实上没有页面,url 只是指向资源的指针,不一定映射到服务器上的物理文件(.html 或 .aspx)。
MVC 的视图页面带回了经典 ASP 的噩梦,其中包含我们在使用页面后代码时远离的所有内联代码。
在使用 WebForms 后我也来到了 MVC,我发现我非常喜欢内联代码。它使视图结构非常清晰,这不能说是静态标记(aspx)+在代码隐藏中操作服务器控件的耦合。后者实际上是一场噩梦 - 您的代码正在生成标记输出,但您看不到在哪里以及如何生成。
MVC 可以带来哪些我们在 ASP.NET 中做不到的事情,或者 MVC 可以做得更快
它消除了 WebForms 给我们带来的丑陋的状态抽象。现在你又回到了起点。你现在拥有的是:
将演示部分(视图)与应用程序逻辑分开的选项。在此之前,所有内容都混合在一起,代码隐藏与数据库通信,调用其他服务,修改标记。真是一团糟。它导致编写了许多严肃的应用程序,但几乎不再可维护。
能够自动测试您的应用程序逻辑。借助 WebForms 和代码隐藏,您将如何调用特定场景?您可以使用 Selenium 等工具来模拟用户活动。现在,当您的视图只是一个被动的表示层时,您就不再有这个问题了。您可以非常轻松地测试业务逻辑和模型输出。视图用于显示结果。如果模型在特定场景中获得了正确的数据,视图将正确显示它。如果没有那就没有。时期。无需测试视图。
控制您的标记。那就是如果你关心的话。如果您是一名前 Windows 开发人员,不关心 HTML 文档是否有效、语义是否正确以及是否针对 Web 引擎进行了优化,那么它对您来说毫无用处。我的意思是,“页面”的显示方式,用户点击的处理方式就像在桌面应用程序中一样,还有什么,对吧?但是,如果您对所有这些事情感兴趣,那么您会查看最终的标记输出,并发现它很丑陋,有很多错误和您根本无法修复的限制。因为这是控件、按钮、数据网格等显示自身的方式。尝试修复它们将需要覆盖这些控件的标记生成,这是一项繁重的任务。为什么不直接放弃它并手动完成所有事情呢?
MVC 从表中获取什么?
服务器端处理“控制”“事件”,就像 Windows 编程一样。如果您正在为 Web 媒体开发类似桌面的应用程序,就像那些典型的“商业”软件,其中有数十个和数百个控件让您发疯,那么 MVC 会让您发疯,因为您必须将每个控件单独与JavaScript。
但是,如果您不是开发此类应用程序(需要一定的心理能力才能使用),而是开发现代可用的 Web 软件,那么 WebForms 会让您发疯。迟早。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)