【问题标题】:Error during redirect to MVC Mobile Area using 51Degrees.mobi使用 51Degrees.mobi 重定向到 MVC 移动区域时出错
【发布时间】:2011-02-23 13:52:21
【问题描述】:

我是 MVC 的新手。我编写的应用程序可以运行,并且我会在学习过程中不断对其进行微调。最近,我一直在玩弄移动网站工具。我从来不需要这样做,所以我做了尽可能多的搜索/阅读/修补。我从 Microsoft Web App Toolkit 开始,它最终有点过时,所以我继续阅读并最终切换到使用 51Degrees.mobi 库。

我已经根据几个不同的帖子进行了设置:

  1. 史蒂夫·桑德森 - http://www.asp.net/learn/whitepapers/add-mobile-pages-to-your-aspnet-web-forms-mvc-application
  2. 51Degrees 用户指南 - http://51degrees.codeplex.com/wikipage?title=User%20guide
  3. ...以及一堆其他网站和描述都围绕相同的基本点。

这就是我所拥有的 Sanderson 先生所描述的。

  • 为我的移动控制器/视图创建了一个 MVC 区域,从而创建了 MobileAreaRegistration.cs 文件

  • 修改了该区域下的 MobileAreaRegistration.cs 以指定默认控制器和操作。

  • 在我的配置文件中包含 51Degrees 组件。即 sectionGroup 引用,包含重定向和 httpModule 的第五十一个部分。

即使我使用的是 Win7,我也必须使用以下 IIS 模块进行调试:

我还对 Global.asax.cs 文件进行了必要的修改以包含主命名空间,这样应用程序就不会混淆它在执行时应该默认到哪个区域。 (如 Steve Sanderson 的帖子中所述)。

最后,我安装了 iphone 模拟器和 android 模拟器,重定向的代码在我的 HomeController 中。我还没有针对每种设备的任何具体信息。我仍在尝试让重定向正确启动。

当我在桌面浏览器(无移动重定向)中运行该站点时,它运行良好。当我使用模拟器(或尝试将桌面浏览器定向到移动站点)时,我收到以下错误。它确实看起来很明显(缺少控制器),但它就在那里。那我没看到什么?

找不到请求的页面。 (404)

System.Web.HttpException:找不到路径“/Mobile”的控制器或未实现 IController。在 System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) 在 System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) 在 System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& 控制器, IControllerFactory& factory) 在 System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) 在 System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) 在 System.Web.Mvc .MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) 在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean & completedSynchronously)

第二双眼睛会很棒!提前感谢您的帮助。

【问题讨论】:

    标签: asp.net-mvc-2 mobile-website


    【解决方案1】:

    回答!

    问题不在于移动工具和重定向的配置,而在于区域本身的移动部分的命名空间。

    我的移动区域控制器中的命名空间是 Licensing.Web.Mobile.Controllers。他们需要是 Licensing.Web.Areas.Mobile.Controllers。

    一旦我将“区域”添加到命名空间,它就像一个冠军一样工作。

    我发现了更多挖掘:Asp.NET MVC 2 and 404

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-08
      • 2018-03-06
      • 1970-01-01
      • 2020-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-31
      • 1970-01-01
      相关资源
      最近更新 更多