CancelOperation从Umbraco中的Custom事件处理程序中引发异常

时间:2018-06-27 06:46:46

标签: c# event-handling umbraco7

我正在使用Umbraco 7.8.1

我添加了自定义事件处理程序,以防止保存数据以在日期选择器中验证将来的日期

ContentService.Saving += delegate (IContentService sender, SaveEventArgs<IContent> args)
{
    foreach (var content in args.SavedEntities.Where(c => c.ContentType.Alias.Equals("profile")))
    {
        var birthDate = Convert.ToDateTime(content.Properties["birthDate"].Value);

        if (DateTime.Compare(birthDate ,DateTime.Now) > 0)
        {
            args.CancelOperation(new EventMessage("Invalid Date of Birth", "You can not add futuer date...", EventMessageType.Error));
        }
    }
}

它显示错误消息,但也会引发异常

Umbraco.Web.Editors.ContentController-发生未处理的控制器异常 System.Web.Http.HttpResponseException:HTTP请求的处理导致异常。有关详细信息,请参见此异常的'Response'属性返回的HTTP响应。

,然后将页面重定向到url: http://domain.in/umbraco/#/content/content/edit/0

请帮助我解决此问题。

1 个答案:

答案 0 :(得分:0)

也许只是使用args.Cancel = true;代替?

然后通过args.Messages.Add(...);添加您的自定义消息

我认为应该可以,但是我尚未对其进行测试。