Je rencontre des difficultés avec le concept de routage dans le cadre ASP.NET MVC. Par exemple, j'ai une méthode de commande:ASP.NET MVC - Routage encore confus pour moi
public class UploadController : Controller
{
public ActionResult Index()
{
return View();
}
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult GetChildFolders(string id)
{
IEnumerable<MyModel> list = MyModelDataContext.GetChildFolders(new Guid(id));
IEnumerable<SelectListItem> listitems = list.Select(row => new SelectListItem
{
Value = row.FolderID.ToString(),
Text = row.FolderName
});
return this.Json(listitems, JsonRequestBehavior.AllowGet);
}
}
et voici mon itinéraire:
routes.MapRoute(
"UploadRoute", // Route name
"Upload/{id}", // URL with parameters
new { controller = "Upload", action = "Index", id = UrlParameter.Optional
});
Maintenant, si j'ai deux fonctions jQuery:
function TeamChange1() {
var id = $('#TeamList').val();
$.getJSON('/Upload/GetChildFolders/' + id, null, function(data) {
bindOptionResults(data);
});
}
function TeamChange2() {
var id = $('#TeamList').val();
$.getJSON('/Upload/GetChildFolders', id, function(data) {
bindOptionResults(data);
});
}
TeamChange1() appellera la Méthode GetChildFolders() avec le paramètre id correctement câblé et rempli, cependant, avec TeamChange2(), le paramètre id reste null dans la méthode du contrôleur. Cela doit être un problème de routage qui provoque cela. Quelle est l'explication?
Vous n'avez pas publié l'itinéraire GetChildFolders. J'imagine que c'est pareil. Sur un autre sujet, vous pourriez être intéressé par cette question http://stackoverflow.com/questions/894779/asp-net-mvc-routing-via-method-attributes – dotjoe