无法找到该资源的Jquery Json
我试图在MVC中用jquery填充一个下拉列表。下面是我的代码 控制器:无法找到该资源的Jquery Json,jquery,asp.net-mvc,json,select,Jquery,Asp.net Mvc,Json,Select,我试图在MVC中用jquery填充一个下拉列表。下面是我的代码 控制器: [AcceptVerbs(HttpVerbs.Get)] public JsonResult GetTeams(StatisticModel model) { StatisticModel newModel = new StatisticModel(model.leagueId); var teams = newModel.getTeams; return J
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult GetTeams(StatisticModel model)
{
StatisticModel newModel = new StatisticModel(model.leagueId);
var teams = newModel.getTeams;
return Json(teams);
}
视图:
选择联盟:model.leagueId,model.getLeagues,new{@class=“dropdownlistLeagueStyle”})%>
JquerY:
$(function() {
$(".dropdownlistLeagueStyle").change(function () {
$.getJSON("/Admin/GetTeams", { LeagueId: $(".dropdownlistLeagueStyle").val() },
function (teams) {
$("#LeagueTeams").empty();
$.each(teams, function (i, team) {
$("#LeagueTeams").append($("<option>" + team.Text + "</option>"));
});
});
});
})
$(函数(){
$(“.dropdownlistLeagueStyle”).change(函数(){
$.getJSON(“/Admin/GetTeams”,{LeagueId:$(“.dropdownlistLeagueStyle”).val()},
职能(团队){
$(“#联赛球队”).empty();
$。每个(团队,职能部门(i,团队){
$(“#联赛球队”).append($(“+team.Text+”);
});
});
});
})
由于某些原因,我得到一个资源未找到错误页面,如下所示
找不到资源
描述:HTTP404。您正在寻找的资源(或其
依赖项)可能已被删除、名称已更改或
暂时不可用。请查看下面的URL并进行修改
确保它拼写正确
请求的URL:/Admin/GetTeams
尝试
JsonRequestBehavior.AllowGet
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult GetTeams(StatisticModel model)
{
StatisticModel newModel = new StatisticModel(model.leagueId);
var teams = newModel.getTeams;
return Json(teams, JsonRequestBehavior.AllowGet);
}
要检查的另一件事是模型绑定:
$.getJSON("/Admin/GetTeams", { LeagueId: $(".dropdownlistLeagueStyle").val() }
应该是:
$.getJSON("/Admin/GetTeams", { model: {LeagueId: $(".dropdownlistLeagueStyle").val() }}
如果服务器端的StatisticModel.LeagueId
是int
,则必须在客户端使用parseInt
$.getJSON("/Admin/GetTeams", { model: {LeagueId: parseInt($(".dropdownlistLeagueStyle").val()) }}
<强>更新:< /强>考虑使用一个更简单的解决方案:
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult GetTeams(int LeagueId)
{
StatisticModel newModel = new StatisticModel(LeagueId);
var teams = newModel.getTeams;
return Json(teams, JsonRequestBehavior.AllowGet);
}
客户端:
$.getJSON("/Admin/GetTeams", { LeagueId: parseInt($(".dropdownlistLeagueStyle").val()) }
我用:@BuyMy Bet:you必须确保控制器名称为“AdminController”,如果服务器端的LeagueId为int,则客户端需要parseIntside@BuyMy打赌:所以你需要parseInt,在我的回答中检查最后的$.getJSON似乎什么都不起作用。。。可能是因为?选择League:model.leagueId,model.getLeagues,new{@class=“dropdownlistLeagueStyle”})%>在中查看我的更新视图post@BuyMy打赌:主要问题是路线不匹配,而不是视图不匹配。jQuery在将嵌套json对象序列化为url编码字符串时遇到问题。在您的例子中,嵌套的json对象是
StatisticModel模型
,您可能需要使用“POST”和json数据来摆脱它。有一个更简单的方法,考虑不使用<代码>统计模型模型< /代码>,只使用<代码> int LeaGeID < /代码>。这样,客户端上的代码是$.getJSON(“/Admin/GetTeams”,{LeagueId:parseInt($(“.dropdownlistLeagueStyle”).val())}
在页面加载或在下拉列表中选择项目时出现此错误?当我选择一个项目并按get Team buttonok时,我的解决方案应该可以工作。你能让它工作吗?好的,我应该使用Html.Begin表单吗?$.getJSON现在可以工作了吗?仅单击按钮不起作用?
$.getJSON("/Admin/GetTeams", { LeagueId: parseInt($(".dropdownlistLeagueStyle").val()) }