私は複数のコントローラ間で共通の方法を持っています。メソッドをコントローラーベースに入れて、他のすべてのコントローラーを継承するのは正しいですか?複数のコントローラ間の共通のメソッド
public class BaseController : Controller
{
public IEnumerable<SelectListItem> GetStatus()
{
IList<SelectListItem> status = new List<SelectListItem>();
status.Add(new SelectListItem() { Text = "Select", Value = "" });
Enum.GetValues(typeof(Status)).Cast<Status>().ToList().Select(x => new SelectListItem()
{
Text = x.ToString(),
Value = ((byte)x).ToString()
}).ToList().ForEach(status.Add);
return status;
}
}
public class DownloadController : BaseController
{
public ActionResult New()
{
NewViewModel newViewModel = new NewViewModel();
newViewModel.Status = GetStatus();
return View(newViewModel);
}
}
あなたがActionResultsを共有している場合、私は基本クラスでそれを行うことはOKです。ステータスのリストのようなプロパティやオブジェクトを共有したい場合は、それをある種のCommonクラスに入れて、それにアクセスします。 –
うん、私もそれをする。それはあなたがそれで何をやっているかによって変わるかもしれません。 – tugberk