ASP.NET MVC-route anzeigen
Bitte helfen Sie mir, meine richtige ASP.NET MVC-Route Anzeigen.
Habe ich einen Menüpunkt mit einem ActionLink:
<li>@Html.ActionLink("Articles", "List", "Article")</li>
Auf der Home-Seite sieht es so aus:
localhost/Article
das ist OK.
Sondern auf den konkreten Artikel Seite mit der URL localhost/Article/List/11
meine Menü-link ist der gleiche:
localhost/Article/List/11
Aber ich brauche localhost/Article
Meine route anzeigen-code ist wie folgt:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Article",
url: "Article/{action}/{id}",
defaults: new { controller = "Article", action = "List", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Hier ist controller-code:
public ActionResult List(int? id)
{
ArticlesDataManager artMgr = new ArticlesDataManager();
ArticleViewModel art = new ArticleViewModel();
art.Articles = artMgr.GetLastArticles();
art.Article = (id == null) ? artMgr.GetLast() : artMgr.GetArticle((int)id);
ViewData.Model = art;
return View();
}
- Sie benötigen die id in der url? Könnte Sie nehmen, dass aus dem Artikel MapRoute. Auch Sie könnten versuchen, Einstellung der RouteValueDictionary gekennzeichnet durch Shyju zu new { id = null } anstatt nur neue {}
- Ja, ich brauche die Id in meiner url. Artikel/Liste/id -Karte Artikel-Liste und ausgewählte Artikel. Artikel/list - zeigt eine Liste der Artikel und der Letzte Artikel nach Datum. Ich weiß, dass ich das beheben kann mein problem durch das hinzufügen neuer Funktionen wie "Ansicht". Article/view/id. Aber ich bin daran interessiert, verwenden Sie nur eine Aktion:)
- Ist die int Nullable int in Ihrem controller-Aktion, d.h. int? id. Vielleicht könnte dies auch einen Effekt, kombiniert mit der new { id = null } des ActionLink () - Methode
- Ja, ich adde meine controller-code in der post
Du musst angemeldet sein, um einen Kommentar abzugeben.
mein problem wurde gelöst, indem die änderung meiner route anzeigen:
Und my menu-link sieht so aus:
<li><a href="@Url.RouteUrl("ArticleByFirst", new { action = "List" })">Articles</a></li>
Und meinen Artikel-link:
<li><a href="@Url.RouteUrl("ArticleById", new { id = item.Id })">@item.Name</a></li>
Ist es nicht gut, dass ich kann nicht wählen Sie den Namen der Route Anzeigen in ActionLink.
Ich denke mal, deine aktuelle Abfragezeichenfolgen Elemente werden Hinzugefügt, um Ihre Aktion link. Um dieses problem zu vermeiden, Verwenden Sie diese überlastung und versuchen, explizit übergeben
null
als RouteValues und sehen, welche änderungen es mit sich bringt.So kann der code neu geschrieben werden als
Können Sie auch versuchen, diese version auch