我应该如何将错误消息传递给top方法

时间:2012-05-08 12:00:37

标签: c# asp.net-mvc

方法有一些方法,有些方法也有其他方法 我应该如何将错误消息传递给top方法以在窗口或对话框上显示消息?
它可能不是错误消息,而是警告消息或其他内容 如果你给我一个关于ASP.NET MVC的建议,那将是非常好的。在ASP.NET MVC中,操作方法将是最重要的。

5 个答案:

答案 0 :(得分:1)

一种可能性是使用TryXXX模式:

public bool TryXXX(InputType input, out ResultType result, out string errorMessage);

并在您的控制器中:

public ActionResult Foo()
{

    ResultType result;
    out string errorMessage;
    if (!TryXXX(input, out result, out errorMessage))
    {
        ModelState.AddModelError("", errorMessage);
        return View();
    }

    // here you could use the result
    ...

}

另一种可能性是将ModelState传递给较低层,这将负责向其添加错误消息,以便在您的控制器操作中,您只需在调用某个方法后检查ModelState.IsValid

另一种可能性是使用异常,但请记住,异常只应用于处理特殊情况。应该避免它们来处理业务验证。

确实有不同的方式,这完全取决于你究竟想要做什么。

答案 1 :(得分:1)

最简单的方法是你可以单独尝试用最高的方法捕获。

关于MVC和asp.net,您不希望向最终用户显示错误。最好通过表格中的验证来预防警告。

作为最后一点,如果你真的需要向最终用户显示警告,那么:

  • 创建一个名为string“WarningMessage”
  • 的公共变量
  • 在流程开始前重置值
  • 为每个有警告的方法内的变量分配/附加警告
  • 检查WarningMessage在返回视图中是否有值。
  • 如果有值,则显示消息

答案 2 :(得分:0)

在您想要的地方抛出自定义异常

throw new Exception("Message");

默认情况下,异常会一直冒泡到堆栈顶部(即显示服务器错误页面),除非你在代码中的某处找到它

try{
  //code
} catch (Exception e) {
  //use exception to display the message
}

异常可以从任何子方法抛出并被父方法

捕获

答案 3 :(得分:0)

在内部方法中使用:

HttpContext.Current.AddError(new Exception("error Message"));

在Controller方法中:

foreach (var item in HttpContext.AllErrors)
{
    //item is Exception
}

答案 4 :(得分:-1)

这可以使用Javascript

轻松完成
var errorflag= false;
var msg='';
if(Failedcondition){
errorflag=true;
msg='Please verfiy first.';
}
if(SecondFailedCondition){
errorflag=true;
msg='Please verfiy first.';

}
else
{
other conditions
}