Сохранение / вызов блоков с повторяющимся кодом в MVC - PullRequest
1 голос
/ 08 октября 2010

Привет всем, извините меня снова.На этот раз у меня есть вопрос, который я считаю довольно общим.Я использую код, который почти точно один и тот же снова и снова внутри контроллера, для настройки viewModel.Мой вопрос был: есть ли способ сохранить этот код где-нибудь в проекте MVC, возможно, он вернет viewModel и вызовет его из контроллеров также в рамках того же проекта.кажется, найти какие-либо ресурсы на этом.Заранее спасибо!

Ответы [ 2 ]

7 голосов
/ 08 октября 2010

Вы можете создать базовый контроллер для своей работы, затем наследовать от in во всех ваших контроллерах и вызывать методы, которые вы хотите использовать повторно.

public abstract class BaseController : Controller
{
    protected BaseController()
    {

    }

    protected void PopulateViewModel()
    {
        //code to populate view model here
    }
}

public class MyController : BaseController
{
    [HttpGet]
    public virtual ActionResult myAction()
    {
        PopulateViewModel();
        //do more stuff
    }
}
1 голос
/ 08 октября 2010

Мне нравится иметь папку «Помощники», которая содержит такие вещи для повторного использования функций кросс-контроллера.

Если это используется только в одном контроллере, я хотел бы поместить функции внизуконтроллер и пометить их как частные, чтобы они не могли быть действиями.

Я не знаю, является ли это правильным, но они сохраняют код достаточно аккуратным и организованным, и все прекрасно сочетаются.

...