我在ASP.NET MVC中无法做的事情

Ole*_*nge 11 asp.net asp.net-mvc webforms

是否有一些我不能用ASP.NET MVC做的事情?只有ASP.NET WebForms可以实现的东西,或者使用WebForms 非常容易?

我们考虑将ASP.NET MVC用于新项目.但我想知道,与WebForms相比,是否有一些显而易见的事情我们将无法使用ASP.NET MVC,或者我们将不得不花费大量时间使用ASP.NET MVC.

Mar*_*ell 14

最大的一个是在表单上使用现有的第三方控件.大多数内置控件很容易重现,但是如果你有一个宠物第三方控件,你可能必须在常规(非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) {...}
Run Code Online (Sandbox Code Playgroud)

将选择"name","page"和"pageSize"关闭(任何)路由,查询字符串或表单 - 这样您就不必花费大量时间来挑选请求值.

重新模板 - aspx/ascx不是唯一的模板选项.例如,见这里 ; 或者,如果你喜欢,你可以写自己的...的观点是不依赖于ASP.NET控件在所有.