我在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