我的观点中有以下脚本: -
<script type="text/javascript">
$(document).ready(function () {
$("#Rack_DataCenterID").change(function () {
var idDC = $(this).val();
$.getJSON("/Rack/LoadZoneByDataCenter", { id: idDC },
function (MedicineData) {
var select = $("#Rack_ZoneID");
select.empty();
select.append($('<option/>', {
value: null
}));
$.each(MedicineData, function (index, itemData) {
select.append($('<option/>', {
value: itemData.Value,
text: itemData.Text
}));
});
});
});
调用以下操作方法: -
[CheckUserPermissions(Action = "Edit", Model = "Rack")]
public JsonResult LoadZoneByDataCenter(string id)
{
var zonelist = repository.getrealtedzone(Convert.ToInt32(id)).ToList();
var ZoneData = zonelist.Select(m => new SelectListItem()
{
Text = m.Name,
Value = m.ZoneID.ToString(),
});
return Json(ZoneData, JsonRequestBehavior.AllowGet);
}
以上运行良好,但在我将我的应用程序发布到iis后,上面停止工作,没有json数据将填充下拉列表。谁能建议导致这个问题的原因是什么? 感谢
答案 0 :(得分:2)
而不是$.getJSON("/Rack/LoadZoneByDataCenter", { id: idDC },
应该做
$.getJSON("@Url.Content("~/Rack/LoadZoneByDataCenter")", { id: idDC },
解析网址
答案 1 :(得分:1)
我的预感就是这就是你的问题所在:
$.getJSON("/Rack/LoadZoneByDataCenter", { id: idDC },
具体地
"/Rack/LoadZoneByDataCenter"
很多时候,当您发布到本地开发版本之外的其他内容时,相对URI会发生变化。