我几天前构建了一个.NET MVC4应用程序。 MVC4体验中的路由模块非常优雅,我希望将其中一个功能实现到我自己的现有项目中。
它是纯粹的asp.net 4.0 web项目。
Web应用程序由纯HTML作为视图,许多javascript和jquery插件作为控制器,以及多个Web服务。
它通过Ajax与服务器,数据库和Web服务进行通信。
每当我尝试在Web服务中调用方法时,我都必须使用Ajax,这已经足够了。
但到目前为止,在应用程序中实现路由模块还没有成功。
我创建Global.asax
以在开头使用路线功能,如下所示。
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
并声明RegisterRoutes
方法如下。
void RegisterRoutes(RouteCollection routes)
{
//routes.MapRoute(
// name: "loginController",
// url: "{controller}/{action}/{id}",
// defaults: new { controller = "login", action = "Index", id = UrlParameter.Optional }
//);
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapPageRoute(
"loginController",
"{controller}/{action}/{id}",
"~/Controller/loginController.cs");
}
并像这样创建和编码loginController
。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
public class loginController : Controller
{
public string index(int id)
{
return "works fine";
}
}
并使用此网址" http://localhost:52749/login/index/1 "
试一试
然后它会抛出这个错误页面。
'/' 응용 프로그램에 서버 오류가 있습니다.
경로 처리기 'System.Web.Routing.PageRouteHandler'의 GetHttpHandler() 메서드에서 IHttpHandler를 반환하지 않았습니다.
설명: 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 스택 추적을 검토하여 발생한 오류 및 코드에서 오류가 발생한 위치에 대한 자세한 정보를 확인하십시오.
예외 정보: System.InvalidOperationException: 경로 처리기 'System.Web.Routing.PageRouteHandler'의 GetHttpHandler() 메서드에서 IHttpHandler를 반환하지 않았습니다.
소스 오류:
현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 생성되었습니다. 아래의 예외 스택 추적을 사용하여 예외의 원인 및 위치 정보를 확인할 수 있습니다.
스택 추적:
[InvalidOperationException: 경로 처리기 'System.Web.Routing.PageRouteHandler'의 GetHttpHandler() 메서드에서 IHttpHandler를 반환하지 않았습니다.]
System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase context) +9599531
System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(Object sender, EventArgs e) +82
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +136
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69
我很抱歉用韩语表达了这一点。
在坚果壳中,它说GetHttpHandler() Method didn't return IHttpHandler.
我试图谷歌这个并没有找到线索。
有人可以帮我摆脱这个吗?
答案 0 :(得分:0)
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "login", action = "index", id = UrlParameter.Optional } // Parameter defaults
);
}
你可以尝试上面的吗?