J'ai une liste de casse-tête marqués avec des «thèmes» spécifiques. Pensez aux questions sur stackoverflow étiquetées avec certaines catégories.Problème de routage dans Asp.Net Mvc
J'essaie d'obtenir ma configuration de la route pour que cela fonctionne comme ceci:
http://www.wikipediamaze.com/puzzles/themed/Movies http://www.wikipediamaze.com/puzzles/themed/Movies,Another-Theme,And-Yet-Another-One
Mes itinéraires sont configurés comme ceci:
routes.MapRoute(
"wiki",
"wiki/{topic}",
new {controller = "game", action = "continue", topic = ""}
);
routes.MapRoute(
"UserDisplay",
"{controller}/{id}/{userName}",
new {controller = "users", action = "display", userName=""},
new { id = @"\d+" }
);
routes.MapRoute(
"ThemedPuzzles",
"puzzles/themed/{themes}",
new { controller = "puzzles", action = "ThemedPuzzles", themes = "" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new {controller = "Home", action = "Index", id = ""} // Parameter defaults
);
Mon contrôleur ressemble à ceci :
public ActionResult ThemedPuzzles(string themes, PuzzleSortType? sortType, int? page, int? pageSize)
{
//Logic goes here
}
Mon lien d'action appel dans les vues ressemble à ceci:
<ul>
<%foreach (var theme in Model.Themes)
{ %>
<li><%=Html.ActionLink(theme, "themed", new {controller = "puzzles", themes = theme})%></li>
<% } %>
</ul>
Cependant, le problème que je vais avoir est la suivante:
Les liens qui sont générées apparaissent comme ceci:
http://www.wikipediamaze.com/puzzles/themed?themes=MyThemeNameHere
Pour ajouter à ce problème le paramètre "Thèmes" sur l'action du contrôleur passe toujours par null. Il ne traduit jamais le paramètre querystring en paramètre d'action du contrôleur. Cependant, si je navigue manuellement
http://www.wikipediamaze.com/puzzles/themed/MyThemeNameHere http://www.wikipediamaze.com/puzzles/themed/MyThemeNameHere,Another-ThemeName
tout fonctionne très bien. Qu'est-ce que je rate?
Merci d'avance!
C'est toujours pas travail. Dois-je faire cela complètement différent de la façon dont j'essaie? – Micah