我目前正在开发一个基于mvc的项目。我看到人们以不同的方式使用模型n控制器,我想知道根据mvc原则哪一个是正确的方法
方法-1:
控制器:
public ActionResult index()
{
return View();
}
public string save ()
{
return null;
}
public string Update()
{
return null;
}
模型:
public string xx {get;set;}
public string yy {get;set;}
方法-2:
控制器:
public ActionResult index()
{
return View();
}
模型:
public string xx {get;set;}
public string yy {get;set;}
public string save ()
{
return null;
}
public string Update()
{
return null;
}
答案 0 :(得分:2)
我认为虽然方法2更接近它,但两者都不正确。
您应该将您的逻辑放在由控制器使用的单独服务中。
示例:
public ActionResult DoStuff() {
var model = Service.save();
return View(model);
}
public class Model {
public string xx { get; set; }
public string yy { get; set; }
}
public class Service
{
public string save ()
{
return null;
}
public string Update()
{
return null;
}
}
控制器或模型都不应该包含业务逻辑。 They should only have a single responsibility。该模型存储控制器返回的数据。控制器只是将从服务接收的数据转换为模型。
答案 1 :(得分:0)
Method
1.因为保存/更新是Action Method
,应该在Controller
范围内,而不是模型。