2009-07-30 26 views
0

ASPX視圖(在ASP.NET MVC中)有可能具有非默認構造函數並在創建此視圖時使用此構造函數嗎?ASP.NET MVC - 帶非默認構造函數的ASPX

- 頁面將繼承這個類:

public class ViewPageWithHelper<TModel> : System.Web.Mvc.ViewPage<TModel> where TModel : class 
    { 
     public ViewPageWithHelper(Helpers helpers) 
     { 
      Helpers = helpers; 
     } 

     protected Helpers Helpers { get; private set; } 
    } 

ASPX觀點:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="MyInjectedViewPage<MyModel>" %> 

<% Helpers.XXXX %> 

現在,我想以某種方式注入助手眼簾 - 自動。想法?

回答

0

我想你應該嘗試創建自己的IViewEngine,它將使用默認的webform視圖引擎創建視圖,然後使用屬性注入來注入依賴關係。

0

爲什麼你需要注入助手?

當我在過去需要幫助者時,我已經爲HtmlHelper寫了一些擴展方法,或者只是創建了一個靜態幫助類,並直接在視圖中使用它。

+0

因爲助手使用了一些注入的對象,例如會話對象,服務,存儲庫等。東西我不想看到知道... 否則,靜態擴展方法是足夠好的。但我希望助手可以進行單元測試。 – bh213 2009-07-30 20:38:29