gpt4 book ai didi

asp.net-mvc - 如何阻止 MVC 中某个操作的执行?

转载 作者:行者123 更新时间:2023-12-02 20:19:29 25 4
gpt4 key购买 nike

情况:

我有一个 Controller (及其关联的 View ),在开发它之后,决定将其排除在当前阶段之外,而是将其包含在未来的某个阶段中。

我不能简单地从解决方案中排除或删除 Controller 和 View ,因为我提到将来将使用 Controller 。我想到的是强制 Controller 上的每个操作在被访问时重定向到主页,但我认为这不太“优雅”。

问题:

当通过 URL 访问 Controller 时,我还可以使用什么其他方法来阻止 Controller 中操作的执行?

最佳答案

像这样将未使用的代码保留在代码库中通常是一个坏主意。假设您有某种版本控制,请在该 Controller 周围保留一个分支,但从主分支中将其删除。当您恢复该功能时,将该分支合并回来。

但是,如果确实无法删除代码,我会创建一个自定义过滤器,将对该 Controller 的任何请求重定向到其他 URL。

[RedirectTo("Index", "Home")]
public class MyFutureController : Controller {
...

你在哪里

public class RedirectToFilter : ActionFilterAttribute {
public string RedirectAction { get; set;}
public string RedirectController { get; set; }

public RedirectToFilter(string redirectAction, string redirectController) {
RedirectAction = redirectAction;
RedirectController = redirectController;
}

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.Result = RedirectToAction(RedirectAction, RedirectController);
}
}

FutureController 的任何请求都将被重定向到您的 Home/Index 路由。将来,您只需从 Controller 中删除该属性即可。

关于asp.net-mvc - 如何阻止 MVC 中某个操作的执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24046511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com