我不确定发生了什么,但突然我的控制器操作未被调用。这个项目整天工作正常,但现在当我运行它时(在Cassini或IIS 7中),我得到“Internet Explorer无法显示网页”。没有服务器错误,甚至没有404或500错误。ASP.Net MVC 2:我的控制器操作未被调用
在单步执行代码时,我可以看到在应用程序启动期间路径已正确注册。在正确的控制器上调用contstructor和Initialize方法,然后.....什么也不做。我能够检查在我的控制器上进入Initialize方法的requestContext,并且框架已经找到了正确的路由数据。这发生在我所有的控制器上。另一个MVC项目在同一台机器上运行得很好。
我完全失去了。任何帮助将非常感谢,因为我在这个项目上有12月1日的截止日期。
感谢, 杰夫法国
下面是我的一些代码:
我家的控制器不工作:
public class HomeController : Controller
{
public HomeController():base()
{
}
protected override void OnException(ExceptionContext filterContext)
{
base.OnException(filterContext);
}
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
}
protected override void Initialize(System.Web.Routing.RequestContext requestContext)
{
base.Initialize(requestContext);
}
protected override void HandleUnknownAction(string actionName)
{
base.HandleUnknownAction(actionName);
}
public ActionResult Index()
{
//if (!Request.IsAuthenticated)
// return RedirectToAction("LogOn", "Account");
return View();
}
public ActionResult About()
{
return View();
}
}
我添加了覆盖,这样我可以设置断点他们看到什么被称为。调用构造函数,然后调用Initialize方法。传递给Initialize方法的requestContext包含正确的路由数据。只要Initailize方法执行完毕,我就会看到“Internet Explorer无法显示网页”消息。
我Glogal.asax:
public class MvcApplication : HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{tenant}/{controller}/{action}/{id}", // URL with parameters
new {tenant = "demo", controller = "Home", action = "Index", id = ""} // Parameter defaults
);
}
public void RegisterViewEngines(ViewEngineCollection engines)
{
}
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
}
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
RegisterViewEngines(ViewEngines.Engines);
}
}
发布代码示例。 – Mark 2009-11-26 11:05:42