Ok http://www.asp.net/learn/mvc/tutorial-23-cs.aspx'a bir göz attım ve çalıştım. Ben tought daha fazla basit ...
Benim yolları: burada
public virtual ActionResult RedirectTo(string url1, string url2, string url3)
{
if (string.IsNullOrEmpty(url1)) return Home();
var pageModel = new PageModel();
pageModel.CurrentPage = _pageRepo.GetByUrl(url1, url2, url3);
BuildMenusAndBreadCrumb(pageModel);
ViewData.Model = pageModel;
return View(Views.Index);
}
Ve (benim menü exemple) bir bağlantı işlemek nasıl:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("Pages3", "{url1}/{url2}/{url3}", MVC.Page.RedirectTo(), new { url1 = "", url2 = "", url3 = "" });
routes.MapRoute("Pages2", "{url1}/{url2}", MVC.Page.RedirectTo(), new { url1 = "", url2 = "", url3 = "" });
routes.MapRoute("Pages1", "{url1}", MVC.Page.RedirectTo(), new { url1 = "", url2 = "", url3 = "" });
}
Ve şimdi kontrolör
<div class="header_menu_content">
<ul id="main_menu_header">
<% foreach(var item in Model) {%>
<% if(item.Children != null){ %>
<li><%= Html.ActionLink(item.Title, MVC.Page.RedirectTo(item.Url, "", ""))%>
<ul>
<% foreach (var child in item.Children){ %>
<li><%= Html.ActionLink(child.Title, MVC.Page.RedirectTo(item.Url, child.Url, "")) %></li>
<% }%>
</ul>
</li>
<% } else { %>
<li class="nochild"><%= Html.ActionLink(item.Title, MVC.Page.RedirectTo(item.Url, "", "")) %></li>
<% } %>
<%} %>
</ul>
Work ihtiyaçlarım için mükemmel! Herhangi bir sorunuz veya yorumunuz varsa utanma! Bunu yapmanın en iyi yolu olduğundan emin değilim ama bununla mutlu oluyorum!
Rota sırasının önemli olduğunu ve ayrıca varsayılan değeri koymadığınız ve url2 = bir şeyin (site/bölüm/sayfa) bulunduğu bir sayfada olduğunuzu unutmayın, bu durumda tüm bağlantınız site/habere işaret edecektir? Url2 = sayfa, url2 paramının neden orada olduğunu anlamak için biraz zaman aldı ama şimdi her şey yolunda!
Daha iyi bir göz atın: - [** ASP.NET MVC Yönlendirmeye Genel Bakış (C#) **] (http://www.asp.net/learn/mvc/tutorial-05-cs.aspx) –
I şimdi bu şeyler ama burada yapmaya çalıştığım şeyi nasıl yapabileceğimi tam olarak bilmiyorum, Html.ActionLink() 'i işaret ettiğimde/web sitesine/firmamıza/konumumuza yönlendirmem mümkün mü? MVC.Page.Index (12)? Ve benim rotam, "Sayfa" istemediğimden nasıl görünmeli, cadı denetleyicim, URL'mdeki kısım mı? – VinnyG