Asp.net

在 ASP.NET MVC 中我不能做的事情

  • August 10, 2011

有一些我不能用 ASP.NET MVC 做的事情嗎?只有使用 ASP.NET WebForms 才能實現的事情,還是使用 WebForms非常容易?

我們考慮將 ASP.NET MVC 用於新項目。但我想知道與 WebForms 相比,是否有一些明顯的事情我們將無法使用 ASP.NET MVC 來完成,或者我們將不得不花費大量時間使用 ASP.NET MVC 的地方。

最大的一個是在您的表單上使用現有的 3rd 方控制項。大多數內置控制項很容易複製,但如果您有一個寵物 3rd 方控制項,您可能必須在正常(非 MVC)aspx 頁面上託管它(幸運的是,這是支持的)。

同樣,“Web 元件”

此外 - ASP.NET 為不同的客戶端(移動設備等)使用不同的 html 的特性變得……不同;您不想手動執行此操作,但實際上大多數客戶端現在都使用標準 html,因此這首先不是問題。

有些東西,比如通過 resx 文件的 i18n 需要比 vanilla MVC 模板中的額外工作,但範例在 Internet 上。

一點… MVC 僅授權用於 MS/ASP.NET;所以你不能做的一件事(不違反條款,據我所知)是在 mono/Apache 中執行它——但是 IANAL。

現在考慮一下你可以用 MVC 做的事情,而你不能(或者很難)用 vanilla 做的事情:

  • 路由而不是頁面
  • 自動輸入解析(動作參數)
  • 正確的html控制…
  • …為簡單的 AJAX 啟用 jQuery 等
  • 關注點分離
  • 可測試性
  • 國際奧委會/DI
  • 多個模板選項(不僅僅是 aspx/ascx)

重新輸入解析度:

public ActionResult Show(string name, int? page, int? pageSize) {...}

將從(任何)路由、查詢字元串或表單中選擇“名稱”、“頁面”和“頁面大小”——因此您不必花費大量時間挑選請求值。

重新模板 - aspx/ascx 不是唯一的模板選項。例如,請參見此處;或者,如果您願意,也可以自己編寫…視圖根本不綁定到 ASP.NET控制項

引用自:https://stackoverflow.com/questions/694226