public override IController CreateController(System.Web.Routing.RequestContext requestContext, string controllerName)
asp.net mvc DefaultContollerFactory의 CreateController를 재정의 하시겠습니까?
이 함수에 전달 된 controllerName은 때때로 "content"입니까?
어떻게 피할 수 있습니까?
public override IController CreateController(System.Web.Routing.RequestContext requestContext, string controllerName)
{
var controllerType = GetControllerType(controllerName);
var projectType = ConfigurationManager.AppSettings["Sales"];
if (controllerType.BaseType == Type.GetType(projectType))
{
var salesid = requestContext.RouteData.Values["salesid"];
int intValue;
int.TryParse(salesid.ToString(), out intValue);
if (intValue == 0)
throw new FormatException("salesid is missing");
return Activator.CreateInstance(controllerType, int.Parse(salesid.ToString())) as IController;
}
return base.CreateController(requestContext, controllerName);
}
여기서 전달되는 controllerName은 때때로 "내용"입니다. 방금 컨트롤러 이름이어야한다고 생각했습니다.