自定义StatusCodeHandler,对Nancy模块执行POST操作

时间:2014-04-17 13:09:00

标签: nancy

我有一个Nancy模块,它提供错误页面(视图) - 对于GET方法,它呈现默认视图但是使用POST方法错误页面应该是自定义的:

public class ErrorsModule : NancyModule
{
    public ErrorsModule()
        : base()
    {
        Get["/Errors/404"] = Error404;
        Post["/Errors/404"] = Error404;
    }

    private dynamic Error404(dynamic parameters)
    {
        var returnURL = Request.Form.returnURL;

        if (!returnURL.HasValue)
        {
            returnURL = ConfigurationManager.AppSettings["404"];
        }

        this.ViewBag.returnURL = returnURL;

        return View["404"];
    }
}

现在在主应用程序模块中,我已经实现了处理404错误的IStatusCodeHandler - 如何从IStatusCodeHandler Handle方法将一些数据发布到“/ Errors / 404”?可能吗?对于GET方法,我可以进行简单的重定向:

context.Response = new Nancy.Responses.RedirectResponse("/Errors/404");

对于POST?

致以最诚挚的问候,

1 个答案:

答案 0 :(得分:0)

您可以将Error404方法中的逻辑移动到另一个类中,并直接在IStatusCodrHandler实现中使用它:

context.Response = helper.Error404(context.Request.Parameters)