在ASP.NET MVC 2中分割控制器之间动作的正确方法

时间:2010-09-13 12:44:55

标签: asp.net-mvc-2

这个问题不是关于代码,至少不是关于错误的代码。我问这个问题是否知道在ASP.NET MVC2中实现模式的正确方法。

假设我有一个包含EmailAddress对象集合的A Contact对象。在My ContactController中,我定期执行从底层商店创建/编辑/删除联系人的操作。在我的索引视图(呈现所有联系人)中,当列表中选择了联系人时,我有一个链接显示“添加电子邮件”。

现在我至少有两种方法来实现此操作:

  1. 在ContactController内添加一个AddEmailAddress操作,该操作使用ContactID属性预填充EmailAddress Model对象并呈现视图
  2. 与步骤1中一样,但不是渲染视图,而是将此作业委托给EmailAddressController类
  3. 处理像这样的模式的正确方法是什么?

    提前致谢!

1 个答案:

答案 0 :(得分:1)

我更喜欢#1。除非需要在联系人的背景下单独处理电子邮件,否则我认为这是可行的方法。

但是,如果您要有列表电子邮件,删除电子邮件,创建电子邮件,编辑电子邮件等屏幕,那么拥有自己的控制器会更有意义。在这种情况下,我会让超链接浏览到电子邮件控制器和创建操作,其中联系人ID作为URL中的参数。