asp.net-mvc – 在ASP.NET MVC中,response.redirect如何工作?
发布时间:2020-05-23 10:56:02 所属栏目:asp.Net 来源:互联网
导读:我在经典的ASP和ASP.NET webforms中使用response.redirect。然而,使用MVC 2.0,我遇到了一些奇怪的东西。 我在控制器类中有一个私有方法,由多个控制器方法使用来帮助加载和验证一些信息。此私有方法设置为如果发现问题到通用错误消息页面重定向。 我注意到
|
我在经典的ASP和ASP.NET webforms中使用response.redirect。然而,使用MVC 2.0,我遇到了一些奇怪的东西。 我在控制器类中有一个私有方法,由多个控制器方法使用来帮助加载和验证一些信息。此私有方法设置为如果发现问题到通用错误消息页面重定向。 我注意到的大问题是,调用控制器类和页面视图尝试完成呈现和加载之前重定向实际发生。这是令人讨厌的开发,因为视图抛出异常,我需要忽略,在我的通用错误页面最终加载。 如上所述,我习惯了旧版本的response.redirect,它阻止了页面上的后续代码被执行,因为新的页面将被加载。 任何帮助或建议在重定向在MVC将非常感谢。 解决方法ASP.Net MVC中的常规重定向机制是返回一个RedirectResult类型的对象到客户端。如果这在调用View方法之前完成,您的视图方法将永远不会被调用。如果你自己调用Response.Redirect,而不是让Asp.Net MVC的前端控制器为你做,你的控制器方法将继续,直到它完成或抛出异常。 您的问题的惯用解决方案是让您的私有方法返回您的控制器可以使用的结果。 例如: public ActionResult Edit(MyEntity entity)
{
if (!IsValid()) return Redirect("/oops/");
...
return View();
}
private bool IsValid()
{
if (nozzle==NozzleState.Closed) return false;
if (!hoseAttached) return false;
return (userRole==Role.Gardener);
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在ASP.NET中使用数据源控件真的很专业吗?
- asp.net-mvc – Ninject如何在ASP.NET MVC中创建控制器?
- asp.net-mvc – 使用缓存配置文件缓存ChildActions将不起作
- asp.net – .NET中的商业网络应用程序 – 选择哪种技术?
- asp.net-mvc-3 – 在具有默认值的模型上注释属性
- 在ASP.NET 2.0中的特定时间清除缓存
- asp.net – Wiki Content是否可移植?
- asp.net-mvc – 使用MVC和WebAPI避免使用Resharper web.con
- 使用ASP.Net Web API进行多部分表单POST
- DataTable的Select方法
推荐文章
站长推荐
- asp.net-mvc – ASP.NET MVC 4异步子操作
- asp.net – 为什么我不能从Visual Studio 2005安
- asp.net-mvc – 企业库日志记录 – 从格式中删除
- asp.net-mvc – 使用MVCContrib格式进行编辑
- asp.net – 如何从我的网站项目中删除未使用的CS
- 在asp.net应用程序中启用c#7
- asp.net-mvc – 在ASP.NET MVC中检测中止的请求
- 从asp.net获取验证AD用户objectGuid
- asp.net-mvc – 在活动的SignalR连接期间更改用户
- asp.net-core – 更改Asp.net Core中静态文件的标
热点阅读
