Вы можете делать это где угодно, но вы нарушите концепцию «Разделение интересов». Контроллер должен заботиться только о том, какое представление или какое действие он будет вызывать или выполнять. Модель следует использовать только в том случае, если ваши данные будут структурированы, обычно она похожа на то, как выглядят свойства вашей базы данных. Короче говоря, ваша Модель (модель класса) должна иметь минимальное мышление. Например, у вас есть таблица Person с такими столбцами, как IDPerson, FirstName, LastName. Ваша модель должна быть примерно такой:
public class Person {
public IdPerson {get;set;}
public FirstName {get;set;}
public LastName {get;set;}
}
Допустим, у вас есть представление, которое показывает детали человека, который может быть чем-то
как это:
public class PersonController : Controller
public ActionResult GetPerson(int IdPerson){
PersonBusinessLogic pbl = new PersonBusinessLogic();
Person p = pbl.GetPersonFromDatabase(id); //To add more consistency, the data access is on a separate class for better maintenance and to emphasize "Separation of Concerns"
ViewResult vr = new ViewResult()
{
ViewName = this.View,//This is where you assign the page if you have other pages for this action
ViewData = new ViewDataDictionary(ViewData)
{
Model = p
}
};
return vr;
}
Для вашей нефти:
[HttpPost]
public ActionResult CreatePerson(Person p)
{
try
{
if (ModelState.IsValid)
{
PersonBusinessLogic pbl = new PersonBusinessLogic();
pbl.CreatePersonToDatabase(p);
return RedirectToAction("Index", "Home");
}
}
catch(Exception ex){
ModelState.AddModelError("",ex.Message);
}
return View(p);
}
[HttpPost]
public ActionResult UpdatePerson(Person p)
{
try
{
if (ModelState.IsValid)
{
PersonBusinessLogic pbl = new PersonBusinessLogic();
pbl.UpdatePersonToDatabase(p);
return RedirectToAction("Index", "Home");
}
}
catch(Exception ex){
ModelState.AddModelError("",ex.Message);
}
return View(p);
}
[HttpPost]
public ActionResult DeletePerson(Person p)
{
try
{
if (ModelState.IsValid)
{
PersonBusinessLogic pbl = new PersonBusinessLogic();
pbl.DeletePersonByIDFromDatabase(p.IdPerson);
return RedirectToAction("Index", "Home");
}
}
catch(Exception ex){
ModelState.AddModelError("",ex.Message);
}
return View(p);
}
Чтобы дать вам лучшее представление, найдите статью о том, как MVC широко применяется в качестве концепции, тогда вы по достоинству оцените процесс обучения.