我目前的路由規則ASP.NET MVC路由,需要幫助建立航線
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Admin", // Route name
"Admin/{controller}/{action}/{id}", // URL with parameters
new { controller = "Admin", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
我也只能由管理員可以訪問多個控制器。目前我有一個菜單在:
/Admin/Index
其中列出了一堆的行動鏈接。現在點擊任何這些鏈接重定向這樣的例子:
/News/Index
但我需要它是這樣的:
/Admin/News/Index
該電流設置排序的作品,但在我的主頁鏈接被抓錯誤的規則和要去,例如/管理員/ Article/1當他們應該只是/文章/ 1
我已經搜索了StackOverflow的答案,並發現一些接近 - 但我還是不'理解足夠的路由以利用他們的答案。任何援助表示讚賞。
編輯
下面是從主頁鏈接的集合,它是由路由規則陷入錯誤
<div id="menucontainer">
<ul id="menu">
<li><%: Html.ActionLink(" ", "About", "Home", null, new { ID = "AboutMHN" })%></li>
<li><%: Html.ActionLink(" ", "Products", "Home", null, new { ID = "Products" })%></li>
<li><%: Html.ActionLink(" ", "HubLocator", "Home", null, new { ID = "HubLocator" })%></li>
<li><%: Html.ActionLink(" ", "ResellerProgram", "Home", null, new { ID = "ResellerProgram" })%></li>
<li><%: Html.ActionLink(" ", "ResellerLogin", "Home", null, new { ID = "ResellerLogin" })%></li>
<li><%: Html.ActionLink(" ", "ContactUs", "Home", null, new { ID = "ContactUs" })%></li>
</ul>
</div>
而且,我的管理控制器只是有一個索引行動。我擁有所有其他「管理」頁面的控制器,例如,我的NewsController具有索引,創建,編輯,刪除,列出所有新聞文章以及執行crud操作的操作。我是否錯誤地構造了這個?
我AdminController.cs
[Authorize(Roles = "Administrator")]
public class AdminController : Controller
{
//
// GET: /Admin/
public ActionResult Index()
{
return View();
}
}
管理員/指標這將返回包含就像
<li><%: Html.ActionLink("News Articles", "Index", "News") %></li>
我NewsController.cs具有進行CRUD操作動作與ActionLinks的菜單。我想網址是
Admin/News/Edit/5
而不是
News/Edit/5
我瞭解地區的方式,我不認爲你做得對。我認爲你的動作鏈接不正確。您應該使用路線鏈接並指定路線名稱。 – Martin 2010-08-19 21:02:04