【发布时间】:2012-02-07 06:36:10
【问题描述】:
在我的项目中,我有一个控制器,可让您创建多个不同类型的字母。所有这些字母类型都存储在数据库中,但每种字母类型都有不同的必填字段和不同的视图。
现在我为以下 URL 设置了一条路由:/Letters/Create/{LetterType}。我目前已将此映射到以下控制器操作:
public ActionResult Create(string LetterType)
{
var model = new SpecificLetterModel();
return View(model);
}
我还有一个名为Create.cshtml 的视图和一个用于我特定字母类型的 EditorTemplate。这一切现在都很好,因为我只实现了一种字母类型。现在我需要继续添加其余部分,但我设置操作的方式与我实现的特定字母类型相关。
由于每个 Letter 都有自己的模型、自己的验证集和自己的视图,那么实现这些操作的最佳方式是什么?由于添加新的字母类型需要对模型/验证进行编码并创建视图,因此拥有单独的控制器操作是否更有意义:
public ActionResult CreateABC(ABCLetterModel model);
public ActionResult CreateXYZ(XYZLetterModel model);
或者有没有一种方法可以让我使用单个控制器操作并轻松返回正确的模型/视图?
【问题讨论】:
-
您要求我们描述如何抽象事物,但没有解释它们的共同点
标签: asp.net-mvc