工作,我有我的應用程序的頂部導航欄下面的代碼:默認路由索引不是新控制器
<li>@Html.ActionLink("Users", "Index", "Account")</li>
<li>@Html.ActionLink("Models", "Index", "Models")</li>
在的AccountController我有以下指數函數:
[Authorize(Roles = "Admin, CanEditGroup, CanEditUser")]
public ActionResult Index()
{
var users = _db.Users;
var model = new List<EditUserViewModel>();
foreach (var user in users)
{
var u = new EditUserViewModel(user);
model.Add(u);
}
return View(model);
}
在ModelsController我有以下指數函數:
public ActionResult Index()
{
return View();
}
當我點擊「用戶'鏈接我被帶到'/帳戶'和索引正確顯示。然而,當我點擊'Models'鏈接時,我被帶到'/ Models'並收到'HTTP Error 403.14 - Forbidden'錯誤。當我調試時,我可以看到'ModelsController'中的Index函數沒有被擊中。 '/ Models/Index'雖然工作正常。
應該指出,我在AccountController已經存在的地方使用了一個模板。我自從添加了ModelsController。
最後,這裏是我的簡單的路由文件:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
請幫助我瞭解,這是造成在路由行爲差異的AccountController和ModelsController之間的差異。
你可以使用一個測試工具來驗證這個問題,是這樣的:http://haacked.com/archive/2008/03 /13/url-routing-debugger.aspx/。我以爲有一個更新的工具,但找不到一個... –