我应该有一个新的控制器或相同的控制器来实现这个吗?

时间:2011-09-02 16:41:36

标签: architecture controller

例如,我有一个广告客户控制器,现在,我需要广告客户有广告。所以,我的问题是,我该把它放在哪里?我应该有一个新的广告控制器还是在广告商控制器中进行?请建议。谢谢。

2 个答案:

答案 0 :(得分:1)

嗯,我认为这实际上取决于您的用户与网站的互动方式以及广告在整个网域中的含义。

根据您所说的内容,我可能会创建一个AdvertisementController方法Create。我假设您已根据身份验证了解用户/广告客户ID,因此您可以为Create(显示表单)和GET设置空Create方法签名方法签名,为Advertisement获取POST个对象。我不知道你正在使用的语言和/或你正在使用的MVC框架,但希望这会有所帮助。

public AdvertisementController : Controller {

  //http://server/ad/create (with optional querystring params??)
  [HttpGet]
  public ActionResult Create(){
    //get your model or modelview
    return View(model);  //return View for your Create Advertisement view
  }

  //http://server/ad/create (with post request body)
  [HttpPost]
  public ActionResult Create(Advertisment ad){
    //send your ad to the repository

    //redirect to some read page, or list, or something else
    return Redirect("Home", "Index");
  }
}

所以我希望这会有所帮助,或者至少会给你一些关于如何设计它的想法。我会去单独的控制器。从组织上来说,它至少会保持你的广告周围的逻辑非常好(而不是一个可能膨胀的广告商控制器)。

祝你好运!

答案 1 :(得分:0)

对我而言,这是一个概念性问题。

如果广告在概念上和逻辑上由广告商“拥有” - 这将是您的答案(使用广告商控制器);另一方面,如果广告本身就是一个独立的概念(并且不完全依赖于广告商),那么这将推动你的答案(给他们自己的答案)。

测试此方法的方法是查看您可能必须实施的不同方案(根据4+1 architectural view model)并让这些方案帮助解决问题。