MVC3 - вспомогательный метод для нескольких контроллеров - PullRequest
4 голосов
/ 23 ноября 2011

Мне нужен метод, возвращающий ActionResult, который имеет доступ к Response / Json, а другие контроллеры имеют доступ и используют его с нескольких контроллеров.

Есть указатели?

Спасибо

Ответы [ 2 ]

5 голосов
/ 23 ноября 2011

Вы можете рассмотреть возможность создания базового класса контроллера и наследования от него.Это позволяет вам использовать один и тот же метод с нескольких контроллеров.

Я не уверен в вашем уровне опыта работы с MVC, но эта статья от Microsoft дает базовые основы идей, стоящих за контроллероми что вы можете с этим сделать.И этот вопрос указывает на несколько хорошо принятых примеров приложения MVC.

2 голосов
/ 23 ноября 2011

Расширение того, что Ник уже указал здесь, является действительно глупым примером. Обратите внимание, что HomeController наследуется от BaseController. Действие SomeResult будет доступно в HomeController.

Только для демонстрационных целей - это ViewModel:

public class Customer
{
    public string Name { get; set; }
    public int Age { get; set; }
}

Базовый контроллер:

public class BaseController : Controller
{
    public ActionResult SomeResult()
    {
        var customer = new Customer { Name = "Jon", Age = 15 };
        return Json(customer, JsonRequestBehavior.AllowGet);
    }
}

Домашний контроллер, наследуемый от базового контроллера:

public class HomeController : BaseController
    {

        public ActionResult Index()
        {
            return View("Index");
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...