我正在將ASP.NET Web窗體應用程序遷移到ASP.NET MVC 3.我有點了解路由,但我有點不知道。在我的應用程序中,我在位於/ internal/products/find /的目錄中創建了三個.cshtml文件。爲了演示,這些.cshtml文件被命名爲「view1.cshtml」,「view2.cshtml」和「view3.cshtml」。ASP.NET MVC 3 - 設置路由
我有一個名爲「InternalController」的控制器。我的目標是對內部路徑中的所有位置使用InternalController。我不確定是否允許我嘗試去做。我認爲是。無論哪種方式,在這個時候,我已經在InternalController如下:
public ActionResult View1()
{
return View();
}
public ActionResult View2()
{
return View();
}
public ActionResult View3()
{
return View();
}
在我的Global.asax.cs文件,我想如下注冊這些意見的途徑:
routes.MapRoute(
"View1",
"{controller}/products/find/view1",
new { controller = "Internal", action = "View1" }
);
routes.MapRoute(
"View2",
"{controller}/products/find/view2",
new { controller = "Internal", action = "View2" }
);
routes.MapRoute(
"View3",
"{controller}/products/find/view3",
new { controller = "Internal", action = "View3" }
);
每當我嘗試在我的瀏覽器中訪問/ internal/products/find/view1時,我看到ASP.NET錯誤屏幕,它說:
未找到視圖'View1'或其主視圖支持搜索的位置。搜索以下位置: 〜/ Views/internal/View1.aspx 〜/ Views/internal/View1.ascx 〜/ Views/Shared/View1.aspx 〜/ Views/Shared/View1.ascx 〜/ Views /dashboard/View1.cshtml 〜/查看/儀表板/ View1.vbhtml 〜/查看/共享/ View1.cshtml 〜/查看/共享/ View1.vbhtml
我在做什麼錯? path/internal/products/find/view1是我最重要的部分。理想情況下,我想每次都在InternalController中公開。但我有一個粗略的去做。我究竟做錯了什麼?
謝謝!
我的.cshtml文件位於/ products/find目錄中。如何更新我的控制器或路線以使用這些視圖? – 2012-02-12 14:19:53
我不會這樣做(只需將文件複製到默認視圖文件夾),但如果你真的想這樣做,這裏是答案:http://stackoverflow.com/questions/909794/how-to-change-默認視圖位置的方案,在-ASP淨MVC – 2012-02-12 15:27:45