0

我已经在应用程序上工作了一段时间,但出现了一个小问题。

我想知道如何在采取任何行动时向用户显示错误/结果。

到目前为止,这是我处理示例的方式:

if(itemID == null)
{
    ViewData["ErrorMessage"] = "The ID provided provoked an error. Please try again. If the problem persist, contact your local administrator.";
}

非常简单的事情......如果我们认为用户保持在同一个视图中。或者有很多地方我必须使用 redict 用户RedirectToAction("Action"),然后刷新 ViewData。

所以我在问任何 MVC “明智的大师”:你有没有一种有效的、可重用的方式来显示消息,它可以是任何格式吗?你能解释一下你会怎么做吗?

谢谢!

4

1 回答 1

1

如果出现错误,一般来说,用户应该留在同一个视图中而不是被重定向。所以他们可以更正错误并重试。所以你基本上只是这样做:

if(itemID == null)
{
    ViewData["ErrorMessage"] = "The ID provided provoked an error. Please try again. If the problem persist, contact your local administrator.";
    return View(); // you probably have a model to include as well
}
else
{
    // perform your action
    return RedirectToAction("some action");
}

毕竟,只需查看您显示的错误消息:

提供的 ID 引发了错误。请再试一次。如果问题仍然存在,请联系您当地的管理员。

您也可以考虑使用类似TempData在使用之前不会被刷新的东西。或许是这样的:

if(itemID == null)
{
    TempData["ErrorMessage"] = "The ID provided provoked an error. Please try again. If the problem persist, contact your local administrator.";
}

这将在重定向中持续存在,并且在被请求之前一直可用。因此,即使您通过一系列复杂的重定向发送用户,当视图最终呈现并检查其中的值时,TempData["ErrorMessage"]它仍然会存在。(而且我认为阅读后会被销毁。)

于 2013-06-21T17:42:04.497 回答