我不確定發生了什麼,但突然我的控制器操作未被調用。這個項目整天工作正常,但現在當我運行它時(在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