我有一些麻煩在我的項目設置了兩個領域,我創建了由右翼的區域點擊我的項目 - >添加 - 使用VS 2010專業版>區域,ASP.NET MVC3使用領域
它的代碼在* AreaRegistration.cs文件中生成的結果與我期望的完全相同。
我的地區都有多個控制器。
我檢查了我的Global.asax.cs文件,它包含了我所期望的,下面是在底部:
// Generated code AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes);
當我更改默認生成的路由信息,我可以得到它的單控制器工作:
context.MapRoute(
"CommunityCourses_default",
"CommunityCourses/{controller}/{action}/{id}",
new {controller="NameOfController", action = "Index", id = UrlParameter.Optional }
);
控制器=「娜meOfController「是我已經嘗試添加到生成的代碼,但它只適用於單個控制器。
編輯:我重命名我的文件的命名空間使用區域內的PROJECTNAME.AREANAME,這是否會導致問題?我認爲它會以非常規方式簡化我的進口。
我缺少什麼?我注意到了很多關於SO的領域的問題,並試圖在沒有成功的情況下遵循答案。這個問題困擾了我一整天的大部分時間,任何幫助將不勝感激!
我將每個區域中所有文件的命名空間更改爲{ProjectName}。{AreaName},是否打破了路線查找器的工作方式?我開始認爲問題來自哪裏,我可以使用{ProjectName} .Areas。{AreaName}作爲我區域內所有文件的命名空間嗎? – Valchris
不完全。例如,控制器應該位於命名空間'{ProjectName} .Areas。{AreaName} .Controllers'中。 – counsellorben
我的問題是MVC3需要這個命名空間的命名約定嗎?我知道這是默認的,但它是否有必要? – Valchris