ASP.NET MVC - 具有非默认构造函数的ASPX

时间:2009-07-30 10:16:08

标签: .net asp.net-mvc dependency-injection

ASPX视图(在ASP.NET MVC中)是否可以使用非默认构造函数并在创建此视图时使用此构造函数?

示例 - 页面将从此类继承:

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 %>

现在,我想以某种方式自动注入助手。想法?

2 个答案:

答案 0 :(得分:0)

我认为您应该尝试创建自己的IViewEngine,它将使用默认的webform视图引擎创建视图,然后使用属性注入注入依赖项。

答案 1 :(得分:0)

为什么需要注射助手?

当我过去需要帮助程序时,我已经为HtmlHelper编写了一些扩展方法,或者只是创建了一个静态帮助程序类并直接在视图中使用它。