Ren*_*Ren 2 iis asp.net-mvc jquery json asp.net-mvc-4
请参阅下面的屏幕截图.我从控制器返回Json结果来填充级联下拉列表.从visual studio运行时,应用程序运行得非常好,但是当从iis服务器运行时,下拉列表根本不会被过滤(抛出404).我真的很困惑.任何帮助,将不胜感激.谢谢.
在pic中,顶部的那个是从VS运行时,底部的那个是从iis通过Intranet运行时.
我已根据要求附加了下面的代码,但正如我上面提到的,从Visual Studio运行时它完全正常.
调节器
[HttpPost]
public JsonResult FilterByDivision(string divisionId)
{
try
{
using (ctx)
{
var SubDivResults = (from q in ctx.Test
where q.divId== divisionId
select new Models.SubDivisionDTO
{
SubDivID = q.subdivId,
SubDiv = q.SubDiv
}).Distinct().ToList();
ajaxLookup.SubDiv = SubDivResults;
}
JsonResult result = new JsonResult();
result.Data = ajaxLookup;
return result;
}
catch (Exception)
{
throw;
}
}
Run Code Online (Sandbox Code Playgroud)
jQuery的
//按部门筛选
$(function () {
$("select#DivisionId").change(function (evt) {
if ($("select#DivisionId").val() != "-1") {
$.ajax({
url: "/AjaxDropDown/FilterByDivision",
type: 'Post',
data: { divisionId: $("select#DivisionId").val() },
success: function (data) {
var subDivItems = "<option value='" + "-1" + "'>" + "Please Select" + "</option>";
$.each(data.subDivisions, function (i, val) {
subDivItems += "<option value='" + val.subDivId + "'>" + val.subDivName + "</option>";
});
$("select#subDivId").empty().html(subDivItems);
}
});
}
});
});
Run Code Online (Sandbox Code Playgroud)
例如,如果您正在从jQuery进行调用,请检查路径,因为您获得的是404.您可能正在虚拟目录中运行应用程序,并且您正在从javascript调用绝对路径.
对于404结果,这可能是你的问题.
从您的代码片段中可能存在以下问题:
$.ajax({
url: "/AjaxDropDown/FilterByDivision",
...
});
Run Code Online (Sandbox Code Playgroud)
你应该在这个表格上有一些东西:
$(function () {
$("select#DivisionId").change(function (evt) {
var resourceAddress = '@Url.Content("~/AjaxDropDown/FilterByDivision")';
if ($("select#DivisionId").val() != "-1") {
$.ajax({
url: resourceAddress,
type: 'Post',
data: {
divisionId: $("select#DivisionId").val()
},
success: function (data) {
var subDivItems = "<option value='" + "-1" + "'>" + "Please Select" + "</option>";
$.each(data.subDivisions, function (i, val) {
subDivItems += "<option value='" + val.subDivId + "'>" + val.subDivName + "</option>";
});
$("select#subDivId").empty().html(subDivItems);
}
});
}
});
});
Run Code Online (Sandbox Code Playgroud)
这会给你一次相对路径.