我在ASP.NET MVC框架内的路由的概念有困难。例如,我有一个控制器的方法: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()将调用带有ID参数的GetChildFolders()方法正确连接并填充,但是,对于TeamChange2(),控制器方法中的id参数仍为空。这必须是导致此问题的路由问题。什么是解释?
您没有发布GetChildFolders路由。我想它是一样的。关于另一个问题,你可能会对这个问题感兴趣http://stackoverflow.com/questions/894779/asp-net-mvc-routing-via-method-attributes – dotjoe 2010-07-13 19:48:14