我是MVC的新手。我写的应用程序工作,我不断微调它,因为我学习。最近,我一直在玩移动网站工具。我从来不需要这样做,所以我做了尽可能多的搜索/阅读/修修补补。我从Microsoft开始,它最终有点过时了,所以我继续阅读,并最终转向使用51Degrees.mobi库。
我已经根据几个不同的帖子建立了它:
http://www.asp.net/learn/whitepapers/add-mobile-pages-to-your-aspnet-web-forms-mvc-application
正如桑德森先生所描述的,这就是我所拥有的。

。


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

我还对Global.asax.cs文件进行了必要的修改,以包含主命名空间,这样应用程序在执行时就不会对默认的区域产生混淆。(如史蒂夫·桑德森的职位所示)。
最后,我安装了iphone模拟器和android模拟器,重定向的代码在我的HomeController中。我还没有针对每个设备的任何具体信息。我还在试着让重定向器正常运转。

当我在桌面浏览器中运行站点(没有移动重定向)时,它运行良好。当我使用仿真器(或尝试将桌面浏览器定向到移动站点)时,我会得到以下错误。它确实看起来很明显(缺少控制器),但它就在那里。那我没看到什么?
无法找到所请求的页面。(404)
System.Web.HttpException:没有找到路径'/Mobile‘的控制器,也没有实现IController。在System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext,在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回调,Object状态)在System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext,AsyncCallback回调,Object状态)在System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext上下文中,AsyncCallback cb,( System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step,布尔& completedSynchronously)
第二双眼睛将是伟大的!提前感谢您的帮助。
发布于 2011-02-23 16:27:00
回答!
问题不在于移动工具的配置和重定向,而在于区域本身的mobile部分的名称空间。
我的移动区域控制器中的命名空间是Licensing.Web.Mobile.Controllers。他们需要成为Licensing.Web.Areas.Mobile.Controllers.
一旦我把“区域”添加到名称空间中,它就像一个冠军一样工作。
我发现这个更有深度:Asp.NET MVC 2 and 404
https://stackoverflow.com/questions/5091777
复制相似问题