当您开发 Web 应用程序时,尤其是那些处理大量数据管理(例如联系人、地址、订单等)的应用程序时,您通常是创建界面作为就地编辑还是制作单独的“编辑”页面(以及仅查看页面)?
为什么/一个比另一个有什么优势?我正在尝试对我自己的具有此类数据管理的项目做出决定,但我不确定该走哪条路。
当您开发 Web 应用程序时,尤其是那些处理大量数据管理(例如联系人、地址、订单等)的应用程序时,您通常是创建界面作为就地编辑还是制作单独的“编辑”页面(以及仅查看页面)?
为什么/一个比另一个有什么优势?我正在尝试对我自己的具有此类数据管理的项目做出决定,但我不确定该走哪条路。
我认为当进行更改的“工作成本”相对较低时,内联编辑是有意义的。
例如,更改照片上的描述是一件非常容易的事情,如果它不完全正确,风险很小,并且用户希望根据他们正在编辑的图片的上下文来正确地做这件事。在这种情况下,内联对我来说很有意义。
另一方面,在需要帮助或指导用户完成流程的应用程序中,或者更改意味着计费/运输/帐户状态的重大更改。有一个单独的页面来帮助他们了解他们的行为的全部后果可能是有意义的。
对于诸如查看页面的主要用途是编辑它的设置之类的设置,内联是有意义的。
在那之后,它更多地是关于使用。如果人们不断地编辑它们,那么它应该是内联的。如果是为了说用户详细信息,它主要被阅读并且有时会被更改,这就是我所做的:
在没有可编辑框的情况下查看该页面。如果用户希望更改某些信息,他们点击编辑按钮。显示相同的页面,但带有可编辑字段和取消/提交按钮。
我通过让视图根据属性桶中的值决定要显示的每个字段的版本来实现这一点,该版本由操作 (MVC) 设置
编辑:
按要求提供样品(未经测试)
在控制器(城堡单轨列车)中,假设是 CustomerController:
public void View(int customerid)
{
PropertyBag["customer"] = Customer.Find(customerid);
}
public void Edit(int customerid)
{
PropertyBag["editing"] = true;
View(customerid);
RenderView("View");
}
在视图中(盲文):
<th>Name:</th>
<td>
<% if IsDefined("editing"): %>
<input name="c.Name" value="$customer.Name" />
<% else: %>
$customer.Name
<% end %>
</td>
我想说,当编辑数据简单明了(防白痴)时,您应该使用就地编辑。对用户来说,它应该不会比在文字处理器中选择文本并在上面输入更复杂。
如果您需要/想要显示标签、说明、错误消息等,您可能应该使用专用的编辑页面。或者找到一种巧妙的方法在页面内执行此操作。
此外,有时您不会准确显示用户输入的内容。例如,您显示用户的年龄,但在编辑时显示生日。然后我建议您使用编辑页面,因为它可能会让用户感到困惑。