用于添加/编辑记录的ASP.NET MVC视图的模式

时间:2015-04-18 12:40:50

标签: c# asp.net-mvc design-patterns ui-patterns

我想交换/分享程序员在设计屏幕视图时可以应用的一些设计模式,以前可以为具有外键的实体向数据库添加和编辑记录。

根据我的经验,我经常使用几种方法:

  • 用户通过从父视图
  • 中选择添加子项来添加子记录
  • 用户通过直接在创建/编辑页面
  • 中选择父关系来添加子记录

在第一种情况下,模式非常简单。假设您拥有CustomerStore个实体,其中客户可以拥有多个商店。然后程序员可以在客户详细信息页面中添加一个“添加商店”按钮,该按钮将在服务器上调用GET操作,该操作返回已设置客户的默认填充商店。例如:

[HttpGet]
public ActionResult CreateStore( int customerID ) {
    return View( new StoreViewModel() { CustomerID = customerID } );
}

[HttpPost]
public ActionResult SaveStore( StoreViewModel store ) {
    [...save store here...]
}

虽然这很容易实现,但它需要程序员编写许多动作方法和视图,这些方法和视图可以比这个例子更好地设计。

我想知道您的体验中是否还有其他模式。此外,如果有任何链接/书籍需要阅读以进一步探讨此主题。

1 个答案:

答案 0 :(得分:1)

我真的建议您查看REST模式和RestfulRouting库。

将商店和客户视为资源。您最终会为每种资源提供两套方法。

您可以使用RespondTo方法根据内容类型返回响应。因此,如果是ajax请求,您可以使用json进行回复,如果是标准查询,则可以使用html进行回复。

因此,当您为客户创建多个商店(从客户页面)时,您可以使用ajax。当您从标准方式(从商店页面)创建商店时,您将使用相同的方法。

它非常有用且广泛传播。它在Rails中默认使用。