我想讓我的具體類與我的觀點分開。沒有使用強類型視圖,我很好。我只是在控制器方法簽名中使用一個大參數列表,然後使用我的服務層工廠方法創建我的具體對象。ASP.NET MVC 2 - 如何使用界面作爲強類型視圖的類型
這實際上對我來說很好,但是讓我思考並且在一點玩法之後,我意識到控制器方法接受接口作爲方法參數是不可能的 - 因爲它沒有辦法實例化它。無法通過IDE使用接口創建強類型視圖(實際上這很有意義)。
所以我的問題。有沒有辦法告訴控制器如何使用我的服務層工廠方法實例化接口參數?
我想從轉換:
[Authorize]
[AcceptVerbs(HttpVerbs.Post)]
[UrlRoute(Path = "Application/Edit/{id}")]
public ActionResult Edit(String id, String TypeCode, String TimeCode, String[] SelectedSchoolSystems,
String PositionChoice1, String PositionChoice2, String PositionChoice3, String Reason, String LocationPreference,
String AvailableDate, String RecipientsNotSelected, String RecipientsSelected) {
//New blank app
IApplication _application = ApplicationService.GetById(id);
喜歡的東西
[Authorize]
[AcceptVerbs(HttpVerbs.Post)]
[UrlRoute(Path = "Application/Edit/{id}")]
public ActionResult Edit(String id, IApplication app) {
//Don't need to do this anymore
//IApplication _application = ApplicationService.GetById(id);
感謝您的優秀投入。巨大的幫助。 – Rake36 2010-03-26 00:01:10
這已經很多個月了,但是經過很多編碼 - 我意識到即使自定義模型綁定可能是正確的答案,但使用強類型視圖模型對我來說是最好的。關鍵是View Model與我的數據庫對象相比經常不同。 – Rake36 2010-07-13 20:27:38