gpt4 book ai didi

c# - 如何使用包含资源值的IController Execute()返回View?

转载 作者:行者123 更新时间:2023-12-03 08:50:29 26 4
gpt4 key购买 nike

我正在执行自定义错误处理。
我的代码:
Global.asax:

 public void Application_Error(Object sender, EventArgs e)
{
Exception exception = Server.GetLastError();
Server.ClearError();

var routeData = new RouteData();
routeData.Values.Add("controller", "ErrorPage");
routeData.Values.Add("action", "Error");
routeData.Values.Add("exception", new HandleErrorInfo(exception, "ErrorPage", "Error"));

if (exception.GetType() == typeof(HttpException))
{
routeData.Values.Add("statusCode", ((HttpException)exception).GetHttpCode());
}
else
{
routeData.Values.Add("statusCode", 500);
}

Response.TrySkipIisCustomErrors = true;
var controller = new ErrorPageController();

((IController)controller).Execute(new RequestContext(new HttpContextWrapper(Context), routeData));
Response.End();
}

Controller :
public class ErrorPageController : Controller
{
public ActionResult Error(int statusCode, HandleErrorInfo exception)
{
Response.StatusCode = statusCode;
ViewBag.StatusCode = statusCode.ToString();
return View(exception);
}
}

View :
@model System.Web.Mvc.HandleErrorInfo
@{
ViewBag.Title = Resource.Error+ " " + (!String.IsNullOrEmpty(ViewBag.StatusCode)) ? ViewBag.StatusCode : "500" ;
}

<h1 class="error">@(Resource.Error + " " + (!String.IsNullOrEmpty(ViewBag.StatusCode)) ? ViewBag.StatusCode : "500" +". "+ Resource.Sorry):</h1>
<h4><a href ="@Url.Action("Index","Home")"><i>@Resource.MainPage</i></a></h4>

基本上, this答案略有变化。
如果我的 View 包含任何 Resource值,则浏览器将仅获取错误代码,而不显示页面。如果我全部删除,效果很好。任何想法如何使 View 与资源一起工作?
另外,应将 controller中的 Application_Error处理掉吗?

最佳答案

如果文件未完全满,有时资源不会出现。例如,如果您的资源文件有20个条目,那么resource.lang.resx必须具有相同的20个条目。没时间不用也没关系

关于c# - 如何使用包含资源值的IController Execute()返回View?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42309558/

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