如何封装在C#MVC中执行返回的代码?

时间:2011-11-10 09:01:04

标签: c# asp.net-mvc asp.net-mvc-3

我有以下代码在我的控制器中的一些操作结束时返回。我不想多次重复使用相同的代码,而是将其封装起来:

        if (Session["CurrentUrl"] != null) {
            var ip = new Uri((string)Session["CurrentUrl"]);
            var ipNoPort = string.Format("{0}://{1}/{2}", ip.Scheme, ip.Host, ip.PathAndQuery);
            return Redirect(ipNoPort);
        }
        return Home();

我不确定的一件事是我如何处理返回参数。有没有人对我能做什么有任何建议?

2 个答案:

答案 0 :(得分:1)

您想要查看创建自定义操作过滤器。然后,您可以将此可重用过滤器应用于需要此行为的任何操作方法。您可以在方法运行之前或之后应用它们。

看看这个Action Filtering in ASP.NET MVC Applications

答案 1 :(得分:0)

您应该返回RedirectResult。你应该总是返回源自ActionResult的东西,否则你将会产生潜在的问题。

如果要封装一些自定义功能,可以扩展此类以满足您的需求。