是否有一些我不能用ASP.NET MVC做的事情?只有ASP.NET WebForms可以实现的东西,或者使用WebForms 非常容易?
我们考虑将ASP.NET MVC用于新项目.但我想知道,与WebForms相比,是否有一些显而易见的事情我们将无法使用ASP.NET MVC,或者我们将不得不花费大量时间使用ASP.NET MVC.
最大的一个是在表单上使用现有的第三方控件.大多数内置控件很容易重现,但是如果你有一个宠物第三方控件,你可能必须在常规(非MVC)aspx页面上托管它(幸运的是这是支持的).
同样,"网页部分"
另外 - ASP.NET为不同的客户端(移动等)使用不同的html的功能变得......不同; 你不想手工完成这个,但实际上大多数客户现在都使用标准的html,所以它首先不是一个问题.
像通过resx文件的i18n这样的东西需要额外的工作,而不是在vanilla MVC模板中,但样本在互联网上.
有一点...... MVC仅授权MS/ASP.NET; 所以你不能做的一件事(不违反条款,正如我所理解的那样)是在mono/Apache中运行它 - 但是IANAL.
现在考虑一下你可以用MVC做的事情,你不能(或者很难)使用vanilla:
路线而不是页面
自动输入分辨率(动作参数)
适当的HTML控件......
...为简单的AJAX启用jQuery等
关注点分离
可测试性
的IoC/DI
多个模板选项(不仅仅是aspx/ascx)
重新输入分辨率:
public ActionResult Show(string name, int? page, int? pageSize) {...}
将选择"name","page"和"pageSize"关闭(任何)路由,查询字符串或表单 - 这样您就不必花费大量时间来挑选请求值.
重新模板 - aspx/ascx不是唯一的模板选项.例如,见这里 ; 或者,如果你喜欢,你可以写自己的...的观点是不依赖于ASP.NET控件在所有.