asp.net mvc Переопределение CreateController для DefaultContollerFactory? - PullRequest
0 голосов
/ 26 февраля 2010

public override IController CreateController(System.Web.Routing.RequestContext requestContext, string controllerName)

Это нормально, что controllerName, переданное в эту функцию, иногда "Содержание"?

как мне этого избежать?


 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);
        }

Имя контроллера, передаваемое здесь, иногда является «Контентом». Я просто подумал, что это должно быть имя контроллера.

1 Ответ

0 голосов
/ 26 февраля 2010

Это нормально, что controllerName, передаваемое в эту функцию, иногда "content"?

Не уверен, что вы имеете в виду иногда . У вас должен быть ContentController, и когда вызывается действие этого контроллера, имя контроллера будет «content» / «Content».

как мне этого избежать?

Я не вижу причин, по которым вам нужно избегать указания имени контроллера в параметре controllerName.

...