試用Addin DefaultController Factory註冊您的控制器。 三個步驟:步驟1 1.新增一類DefaultControllerFactory在你的項目
public class ControllerFactory :DefaultControllerFactory
{
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
try
{
if (controllerType == null)
throw new ArgumentNullException("controllerType");
if (!typeof(IController).IsAssignableFrom(controllerType))
throw new ArgumentException(string.Format(
"Type requested is not a controller: {0}",
controllerType.Name),
"controllerType");
return MvcUnityContainer.Container.Resolve(controllerType) as IController;
}
catch
{
return null;
}
}
public static class MvcUnityContainer
{
public static UnityContainer Container { get; set; }
}
}
步驟2:註冊它引導類BuildUnityContainer方法
private static IUnityContainer BuildUnityContainer()
{
var container = new UnityContainer();
// register all your components with the container here
// it is NOT necessary to register your controllers
// e.g. container.RegisterType<ITestService, TestService>();
//RegisterTypes(container);
container = new UnityContainer();
container.RegisterType<IProductRepository, ProductRepository>();
UnityInterceptionExample.Models.ControllerFactory.MvcUnityContainer.Container = container;
return container;
}
步驟3:並在全球註冊它.asax文件
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
Bootstrapper.Initialise();
ControllerBuilder.Current.SetControllerFactory(typeof(ControllerFactory));
}
並已完成。 可能是這會爲你工作... 快樂編碼。
閱讀[編輯幫助](http://stackoverflow.com/editing-help#code)。 – 2012-04-19 04:33:15
'container'的類型是什麼? – 2012-04-19 04:37:24
另外,'PopupCommand'在它的構造函數中有什麼參數。異常是否包含更多信息? – 2012-04-19 05:26:14