【发布时间】:2011-03-15 12:28:15
【问题描述】:
我对 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 路线。我想它是一样的。在另一个主题上,您可能对这个问题感兴趣stackoverflow.com/questions/894779/…
标签: jquery asp.net-mvc routing controller