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

标签 c# asp.net asp.net-mvc error-handling resources

我正在执行自定义错误处理。
我的代码:
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/

相关文章:

c# - 在 if 语句中使用 var

c# - 从 Windows 文件夹中删除权限

c# - 如何解决 VS2012 中简单的 Nuget 安装导致 MVC4 Twitter Bootstrap 项目失败的问题?

asp.net - 简洁的 ASP.NET 验证摘要

c# - asp.net OnClientClick 没有为最初禁用的按钮呈现

asp.net-mvc - 当捆绑 EnableOptimizations 为 true 时,Font-Awesome 获取请求失败

c# - 来自 Web Config 的动态图像位置

asp.net - ASP.NET MVC 3 Razor 是否输出缓冲区 View ?

asp.net - MVC/ASP.NET设计模板

asp.net-mvc - 如何将第一个项目设置为在 ListView kendoui中选择