Vagrant-lxc - это плагин для Vagrant, который позволяет вам использовать LXC для предоставления Vagrant. Он не обладает всеми функциями, которыми обладает стандартная бродячая виртуальная машина (VirtualBox), но он должен обеспечивать большую гибкость, чем контейнеры Docker. В ссылке есть видео, показывающее его возможности, которые стоит посмотреть.
Вы можете абсолютно точно использовать определенные типы возвращаемых данных, хотя большинство примеров в Интернете, кажется, возвращают ActionResult . Единственный раз, когда я мог бы вернуть класс ActionResult , это когда разные пути метода действия возвращают разные подтипы.
Стивен Сандерсон также рекомендует возвращать определенные типы в своей книге Pro ASP.NET MVC Framework . Взгляните на цитату ниже:
Этот метод действия специально заявляет, что он возвращает экземпляр ViewResult. Он будет работать точно так же, если вместо этого метод Тип возвращаемого значения - ActionResult (базовый класс для всех результатов действия). Фактически, некоторые программисты ASP.NET MVC объявляют все свои методы действий как возвращающий неспецифический ActionResult, даже если они точно знают что он всегда будет возвращать один конкретный подкласс. Однако это устоявшийся принцип объектно-ориентированного программирования, согласно которому методы должны возвращать наиболее конкретный тип, который они могут (а также принимать наиболее общие типы параметров, которые они могут). Следуя этому принципу максимизирует удобство и гибкость кода, вызывающего ваш метод, например, ваши модульные тесты.
Всегда возвращайте наиболее точный тип, который вы можете вернуть. Таким образом, вы должны вернуть ViewResult, когда действие всегда отображает представление. Я бы использовал ActionResult только при возврате в ViewResult в некоторых случаях (неверные опубликованные данные) или RedirectToRouteResult в других случаях.
С помощью некоторых расширенных сценариев фильтрации действий / выполнения вы даже можете возвращать совершенно разные вещи, не имеющие ничего общего с ActionResult.
[Частичный ответ]: вы не всегда возвращаете ActionResult, нет. Вот краткий обзор некоторых других результатов, которые вы можете вернуть: http://msdn.microsoft.com/en-us/library/dd410269%28v=vs.98%29.aspx
Может быть, это поможет немного. Удачи!
ActionResult - это базовый класс для различных типов возвращаемых данных. Таким образом, ваше действие должно возвращать ActionResult или производный от него класс , чтобы работать. Обычными являются ViewResult
, JsonResult
и т. Д.
Да, вы можете определить свое действие, например: public ViewResult Index ()
. Но иногда ваше действие может возвращать разные результаты (это невозможно без объявления результата как базового класса ActionResult
). Например:
public ActionResult Show()
{
...
if(Request.IsAjaxRequest())
{
return PartialView(...);
}
return View(...);
}
или:
public ActionResult Show()
{
...
try
{
...
}
catch(Exception)
{
return RedirectToAction(...);
}
return View(...);
}