我正在尝试构建一个控制器,使用户能够在项目中添加/删除子内容。
把它想象成一个文档,你可以在其中添加不同类型的部分,比如标题,段落,图像等(它们各自都有自己的属性,所以它们在SQL中的单独表中)
我的问题是我应该在哪里放置代码来处理这个“文档控制器”中的不同类型的子部分?
它们都通过数据库关系附加到这个“文档”/实体,但是我应该为每种类型制作一个“crudl”控制器,还是应该做一个基础有点的crudl然后让它们都继承这个?
我研究过“模特”和“服务层” - 这是正确的方法吗?
我仍然是MVC的新手,使用C#和ASP.net我希望有人给我一个正确方向的提示。
的Nb。请告诉我是否应该重新解释这个问题。不知道该问什么才能在这里得到正确答案。
规格:如果需要,我使用EF 4.x和MVC3将升级到最新版本。
希望得到一些聪明的答案或指导。在此先感谢大家。是的,我也试过谷歌。不知道要搜索什么,所以我来到这里。
答案 0 :(得分:1)
我应该在哪里放置代码来处理这个“documentcontroller”中的不同类型的子部分?
此代码将最终进入控制器操作,然后您可以相应地处理和更新数据库。有多种方法可以做到这一点,你可以是通用的,例如。
[HttpPost]
public ActionResult AddSection(string type)
{
switch (type)
{
case "HEADING":
// add new heading to database
case "PARAGRAPH":
// add new paragraph to database
}
return View(type);
}
或者你可以是具体的,例如。
[HttpPost]
public ActionResult AddHeadingSection()
{
// add to db
return View("Heading");
}
[HttpPost]
public ActionResult AddParagraphSection()
{
// add to db
return View("Parapgraph");
}
以上只是伪代码,可以让您大致了解如何以最小的努力完成它。在现实生活中,你可能会发布额外的信息,例如: AddHeadingSection(HeadingModel model)
。这取决于你如何实现这一目标。
另外,你可能想考虑使用AJAX而不是完整的回发,这会让你的应用程序更加流畅。