ASP.NET MVC> ASP.NET WebForms,为什么?

我现在已经完成了使用ASP.NET MVC的第一个Web应用程序,总体来说,我还没有抓住为什么这样得到所有的赞誉和荣耀.也许我很顽固我知道什么使MVC伟大的是表现层与业务对象或数据层之间的分离以及无状态操作.我也知道,当你使用这个视图时,看起来代码的可读性差(见我下面的例子).

所以我猜我的问题是…如果分离是关心,为什么不分开.

Web表单查看代码

//UI
<h2><asp:Label ID="lblPageHeader" runat="server" /></h2>

Web表单代码背后:

//CODE BEHIND
this.lblPageHeader.Text = myObject.Header;

MVC代码视图:

//UI
<h2><%= Html.Encode(Model.PageTitle) %></h2>

MVC控制器代码

index = new Index
{
    PageText = sb.ToString(),PageTitle = "WELCOME"
};
return View(index);

再次,我可能会固执己见,但我在WebForms中真正喜欢的其中一件事就是轻松设置DataSources和Text值等对象属性.看起来这是完全不同的MVC和较少的可读性,这使我想知道长期维护.

编辑
在研究了类型模型后,我认为代码的可读性大大提高.

解决方法

ASP.NET MVC Best Practices,Tips and Tricks

我会写:

<h2><%= Html.Encode(Model.Title) %></h2>

(可以在类型化视图的帮助下)

代替

<h2><%= Html.Encode((MyApp.MyObject)ViewData["PageObject"].Header) %></h2>

我认为这是关于你如何使用它.如果你对经典的ASP.NET感到更加开心,那可能是一个比较好的主意.此外,您还可以从ASP.NET MVC世界(如UI和逻辑分离)中获取好的东西,并将其带入经典的ASP.NET.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....