Создать базовый класс контроллера (частичный) - PullRequest
1 голос
/ 02 ноября 2009

Поскольку мое действие @html.render приводит к сбою серверов dev и prod, я должен использовать partials (crap) .

Я попытался создать класс public partial controller{}, чтобы я мог установить необходимые данные для всех моих просмотров, но мне не повезло (все ломается).

Я пришел из LAMP cakePHP, и мне действительно нужна простота.

Мне нужно знать, как создать частичный базовый контроллер (, который не переопределяет обычный базовый контроллер ) и как получить доступ к нескольким моделям из класса.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 02 ноября 2009

лучший способ создать базовый контроллер

    public class Controller : System.Web.Mvc.Controller
{
    public shipsEntities db = new shipsEntities();

    public Controller()
    {
        ViewData["ships"] = db.ships.ToList();
    }
}

таким образом остальные контроллеры следуют обычному соглашению

public class MyController : Controller
3 голосов
/ 02 ноября 2009
public class BaseController: Controller
{
   public override OnActionExecuting(...) { ... }
   public override OnActionExecuted(... context) 
   {
       if (context.Result is ViewResult)
           ((ViewResult)context.Result).ViewData["mycommondata"] = data;
   }
   ...
}

public class MyController1: BaseController 
{
}

т.е. просто наследуйте ваш новый базовый класс контроллеров.

Однако я бы посоветовал вам спросить здесь, почему ваш RenderPartial "падает" - поскольку это может быть лучшим способом для вас, и, очевидно, он не должен падать.

...