C# Umbraco事件处理程序-引发自定义UI错误消息

C# Umbraco事件处理程序-引发自定义UI错误消息,c#,asp.net-mvc,error-handling,event-handling,umbraco7,C#,Asp.net Mvc,Error Handling,Event Handling,Umbraco7,我正在使用Umbraco 7.2.4。 我添加了发布事件的功能 当代码中存在异常时,如何引发自定义错误消息并将其显示给用户 我尝试了以下代码: var clientTool = new Umbraco.Web.UI.Pages.ClientTools((System.Web.UI.Page)HttpContext.Current.CurrentHandler); clientTool.ShowSpeechBubble(SpeechBubbleIcon.Error, "Choose first a

我正在使用Umbraco 7.2.4。

我添加了发布事件的功能

当代码中存在异常时,如何引发自定义错误消息并将其显示给用户

我尝试了以下代码:

var clientTool = new Umbraco.Web.UI.Pages.ClientTools((System.Web.UI.Page)HttpContext.Current.CurrentHandler);
clientTool.ShowSpeechBubble(SpeechBubbleIcon.Error, "Choose first a content page", "Page has not been added.");
但它会引发以下异常:

无法将“System.Web.Http.WebHost.HttpControllerHandler”类型的对象强制转换为“System.Web.UI.Page”类型

我做错了什么?
或者,是否有其他方法引发自定义错误?

您需要在控制器中捕获错误或null检查(如果a==null),如果确实发生,则返回显示错误的视图。例如:

if(myValue == null)
{
    return View("~/Views/ErrorView.cshtml", model);
}


还要检查MVC中的TempData。

不幸的是,在Umbraco 7中没有添加自定义错误消息的简单方法。但是,有一种解决方法涉及拦截对API的请求并修改默认错误消息。请参阅中描述的WebApiHandler,并进一步了解使用AdditionalData属性的技术。我不想看到错误页面。我希望在页面上显示错误通知,例如当出现umbraco错误或保存事件时。是的,这就是我说查看TempData的原因。您可以在控制器TempData[“errorMessage”]=“my message”中执行此操作,然后返回到currentPage并显示TempData[“errorMessage”]中的任何值-我将尝试提供一个很好的示例看看-这是我当前正在处理的一个项目的示例。在视图/页面上,您只需在TempData中显示值。我希望这就是你要找的。
try{
    //try do something
}
catch(Exception e){
    //log your exception
    return View("~/Views/ErrorView.cshtml", model); // Model is Umbraco.Web.Models.RenderModel

}