У меня возникли трудности с концепцией маршрутизации в рамках ASP.NET MVC Framework. Например, у меня есть метод контроллера:ASP.NET MVC - Маршрутизация все еще запутывает для меня
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);
}
}
и вот мой маршрут:
routes.MapRoute(
"UploadRoute", // Route name
"Upload/{id}", // URL with parameters
new { controller = "Upload", action = "Index", id = UrlParameter.Optional
});
Теперь, если у меня есть две функции 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() будем называть Метод GetChildFolders() с параметром id, правильно подключенным и заполненным, однако с TeamChange2() параметр id остается пустым в методе контроллера. Это должно быть проблемой маршрутизации, которая вызывает это. Что такое объяснение?
Вы не разместили маршрут GetChildFolders. Я думаю, это одно и то же. По другому вопросу вам может быть интересен этот вопрос http://stackoverflow.com/questions/894779/asp-net-mvc-routing-via-method-attributes – dotjoe