正确使用控制器和型号mvc

时间:2014-09-23 11:40:09

标签: asp.net-mvc asp.net-mvc-4

我目前正在开发一个基于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;
     }

2 个答案:

答案 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范围内,而不是模型。