asp.net-mvc – MVC – 重定向在构造函数内
发布时间:2020-12-16 00:24:22 所属栏目:asp.Net 来源:网络整理
导读:我想知道如果我需要这样做,我可以如何重定向控制器构造函数中的请求? 例如: 在构造函数内,我需要初始化具有动态值的对象,在某些情况下,我不想这样做,在这种情况下,我想重定向到其他地方。 以相同的方式,构造函数的其余部分既不会执行“原始跟随操作
我想知道如果我需要这样做,我可以如何重定向控制器构造函数中的请求?
例如: 我该怎么做? 编辑#1 最初我用: public override void OnActionExecuting(ActionExecutingContext filterContext) 在那里我可以重定向到一些其他控制器/动作/ url,但稍后的时间,我需要更改我的控制器,我在其中构造函数中初始化一个变量,并有一些代码真的需要重定向请求:P 我也需要这一点,因为OnActionExecuting在控制器构造函数之后执行。 解决方法
执行控制器构造函数内的重定向不是一个好的做法,因为上下文可能没有被初始化。标准做法是编写自定义操作属性并覆盖
OnActionExecuting方法并在其中执行重定向。例:
public class RedirectingActionAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); if (someConditionIsMet) { filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller = "someOther",action = "someAction" })); } } } 然后使用此属性装饰要重定向的控制器。要非常小心,不要装饰你正在重定向到这个属性的控制器,否则你将会遇到一个无休止的循环。 所以你可以: [RedirectingAction] public class HomeController : Controller { public ActionResult Index() { // This action is never going to execute if the // redirecting condition is met return View(); } } public class SomeOtherController : Controller { public ActionResult SomeAction() { return View(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net创建helloWord
- asp.net-web-api – ASP.NET WebAPI OData – 继承自Entity
- asp.net – 哪个更适合性能视图状态或会话
- asp.net – 问题映射HttpHandler – > HTTP错误404未找到
- asp.net-mvc-3 – 将PartialView Html转换为ITextSharp Htm
- asp.net-core – 简化的IOptions方法
- asp.net-mvc – 防止用户在asp.net模型验证中输入表单时输入
- 如何在asp.net c中仅获取排除时间的日期#
- asp.net-identity – EF7标识不加载用户扩展属性
- ASP.NET奇怪的编译错误
推荐文章
站长推荐
- 懒惰加载asp.net Ajax Control Toolkit手风琴
- asp.net-mvc – 在ASP.NET MVC中的默认成员资格提
- asp.net – 使用Linq将单个值返回给SQL
- asp.net-mvc – ASP.NET MVC NHibernate模型绑定
- ASP.NET MVC,Node.JS.他们可以互动吗?
- asp.net-mvc – 服务层中的AutoMapper
- asp.net-mvc – ASP MVC – 多对多的关系
- .NET Core采用的全新配置系统[9]: 为什么针对XML
- 将azure AD身份验证与asp.net核心身份个人帐户集
- asp.net – 使用UpdatePanel的CollectionPager问
热点阅读