gpt4 book ai didi

asp.net-mvc - ASP.NET MVC - 在没有 Controller 的情况下显示 404 共享 View

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

我正在查看 this so question回答者展示了一种从 Global.asax 中的 Application_Error 方法抛出 NotFoundException 的好方法。

这很棒,但我想稍微修改一下...只是不确定如何修改。

我的共享 View 文件夹中有一个 NotFound View 和一个 Error View 。我想继续此操作,而不必使用 ErrorController。

有什么方法可以在“ Controller ”不存在时抛出 404 NotFound 错误,同时仍然不必有错误 Controller ?

IE:如果你访问http://example.com/asdf因此 asdf 是一个无效的 Controller ,我希望从我的共享 View 目录中加载“NotFound” View 。

编辑

基本上我遇到的问题是“DRY”。我可以构建一个 ErrorController,但是如果我这样做,那么我必须在两个位置有相同的 View 。一个在我的 Views/Error 文件夹中,一个在我的 Views/Shared 文件夹中,我可以从任何 Controller 加载错误或 NotFound View 。

这个我也试过

Private Sub BaseGlobal_Error(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Error
Dim exception As System.Exception = Server.GetLastError
Response.Clear()

Dim httpException As HttpException = TryCast(exception, HttpException)

Dim routeData As RouteData = New RouteData()
routeData.Values.Add("controller", "Events")

If (Not httpException Is Nothing) And (httpException.GetHttpCode = 404) Then
routeData.Values.Add("action", "NotFound")
Server.ClearError()
Dim errorController As IController = New UrbanNow.Core.Controllers.EventsController
Response.StatusCode = 404
errorController.Execute(New RequestContext(New HttpContextWrapper(Context), routeData))
End If
End Sub

EventsController 显然用于事件,但试图在 NotFound View 中加载(希望它会从共享目录中提取......但我没有任何运气。

最佳答案

this so question 的答案可能正是您正在寻找的内容,但您可能无法将页面放入共享文件夹(为此您可能需要一个 Controller )。

关于asp.net-mvc - ASP.NET MVC - 在没有 Controller 的情况下显示 404 共享 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4199951/

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