.NET, ASP.NET, 存档
     

处理 asp. net mvc 中的未知控制器操作

上一篇文章中, 我讨论了如何使用通配符路由来捕获完全格式错误的 url。但是, 如果 url 与找不到请求的操作的控制器匹配, 该怎么办?

例如, 当访问者请求 http://example.com/product/listing 当产品控制器上没有列表操作时。在本例中, 您的访客将受到不太友好的页面的欢迎, 该页面指出:

	Server Error in '/' Application. 
	The resource cannot be found.

	Description: HTTP 404. The resource you are looking for (or one of its dependencies) 
	could have been removed, had its name changed, or is temporarily unavailable.  
	Please review the following URL and make sure that it is spelled correctly. 

这个页面对我们的访客来说毫无意义, 和上次我们不同的是, 我们对我们的游客在寻找什么有一个大致的了解。在我们的示例中, 用户对与产品有关的东西感兴趣。在这种情况下, 我们可以重写基本控制器的 HandleUnknownAction 方法。

每当控制器找不到请求的操作时, 方法将被触发。

由于这是在每个控制器的基础上实现的, 我们已经知道了很多关于请求的上下文, 可以为我们的访客生成一个更智能的404页面。对于产品控制器, 您可以列出流行的产品。对于其他控制器, 您甚至可以使用 HandleUnknownAction 方法的操作名称参数为404页添加更多智能。

唯一要记住的是, 无论显示的内容是404错误页面, 都应该这样对待。告诉你的访客, 他们所要求的东西找不到。并通过将 http 状态代码设置为404来告诉他们的 web 浏览器相同。

About Jason

Jason 是一位经验丰富的企业家兼软件开发人员,擅长领导力、移动开发、数据同步和 SaaS 架构。他获得了阿肯色州立大学计算机科学学士学位( 学士学位.
View all posts by Jason →

发表评论

电子邮件地址不会被公开。 必填项已用*标注