尝试编辑不存在的项目的最佳做法?

时间:2011-02-02 00:18:45

标签: c# asp.net asp.net-mvc

我目前有这个控制器功能:

public ViewResult Edit(int id)
{
    //get user from id
    var user = _adminRepository.GetUser(id);

    return View(user);
}

如果我尝试编辑ID为100的项目,当数据库中没有id为100的用户时,这会在我的视图页面上出现错误。

处理此问题的最佳做法是什么?将它们发送到“创建”页面,或显示友好的错误消息?该重定向功能是否应该在控制器功能中?

4 个答案:

答案 0 :(得分:6)

IMO它应该引发404错误。在所有用户请求不存在的资源之后,就像常规网页一样。

答案 1 :(得分:5)

我会显示一条友好的错误消息,告诉他们用户已被删除,如果他们想要重新创建用户,请提供指向“创建用户”页面的链接。

我反对将用户重定向到他们原本打算不去的任何地方,所以当他们期望进入编辑用户界面时我自动将他们重定向到创建用户界面(我假设他们是独立的)是不是最友好的解决方案。

答案 2 :(得分:1)

我认为您应该将它们重定向到“创建页面”,并提供有关重定向原因的额外信息。

答案 3 :(得分:1)

根据您对@ RPM1984的回复,我认为您的问题在于更新操作,因为您已经打开了视图。我建议你重定向到友好的错误页面说“你想要更新的用户不存在。”当你点击保存然后找出用户不再存在。使用链接返回您的网格并查看最新的用户组。

对于某些用户可能会尝试直接访问网址而不是使用网格,此页面也会有所帮助..

即。

有些人可能会输入

http://mysite.com/users/edit/215215132

其中215215132是您的userId。

我只是假设你是这样做的。