最大的一个问题就是在表单上使用现有的第三方控件。大多数内置控件都很容易重现,但如果您有一个特殊的第三方控件,则必须在常规(非MVC)aspx页面上进行托管(幸运的是这是被支持的)。
同样,"Web 部件"
另外,ASP.NET使用不同的HTML编码以适应不同的客户端(移动端等)的功能变得...不同了;您不想手动完成这项工作,但实际上大多数客户现在都使用标准的HTML,因此这就不再是问题。
一些像通过resx文件进行i18n的事情需要额外的工作,而不仅仅是基本的MVC模板,但这些样例都可以在互联网上找到。
一个要点是...MVC 只授权给 MS/ASP.NET;所以你不能做的一件事(如果我理解正确的话)就是在 Mono/Apache 上运行它 - 但我不是律师。
现在考虑使用MVC,你可以做到的事情,而在基础版本中无法做到或难以做到的事情:
- routes instead of pages
- automated input resolution (action arguments)
- proper html control...
- ...enabling jQuery etc for simple AJAX
- separation of concerns
- testability
- IoC/DI
- multiple templating options (not just aspx/ascx)
重新输入分辨率:
public ActionResult Show(string name, int? page, int? pageSize) {...}
将“名称”,“页数”和“页面大小”从路径、查询字符串或表单中取出 - 这样您就不必花费大量时间来挑选请求值。
关于模板- aspx/ascx不是唯一的模板选项。例如,请参见这里;或者如果你愿意,你可以编写自己的模板引擎...视图不与ASP.NET控件绑定。