我用自动完成方法建立了一个Web表单,程序在IDE中运行正常。但是在我将应用程序发布到IIS后,该方法就不起作用了。控制台显示此错误'failed to load resouts:服务器响应状态为500(内部服务器错误)Index2)。我怀疑jquery代码无法识别控制器名称。
CSHTML
<script type="text/javascript">
$(document).ready(function () {
$("#CardName").autocomplete({
source: function (request, response) {
$.ajax({
url: "Index2",
type: "POST",
dataType: "json",
data: { Prefix: request.term },
success: function (data) {
response($.map(data, function (item) {
return { label: item.CardName, value: item.CardId };
}))
}
})
},
messages: {
noResults: "", results: ""
}
});
})
</script>
控制器
[HttpPost]
public JsonResult Index2(string Prefix)
{
List<CardHolderDetails> getCardList = new List<CardHolderDetails>();
getCardList = _service.getCardList();
List<CardHolderDetails> ObjList = new List<CardHolderDetails>();
foreach (var value in getCardList)
{
ObjList.Add(new CardHolderDetails { CardId = value.CardId, CardName = value.CardName });
}
//Searching records from list using LINQ query
var CardName= (from N in ObjList
where N.CardName.StartsWith(Prefix)
select new { N.CardName, N.CardId });
return Json(CardName, JsonRequestBehavior.AllowGet);
}
下面的代码在开发过程中运行良好,但一旦发布到IIS,似乎无法读取jquery url
。是否有任何URL
的替代控制器函数名称?
1条答案
按热度按时间gojuced71#
如果您的
_service.getCardList()
传回null
,则foreach
会掷回您尚未行程的例外状况。也许这就是为什么您得到的是
(500) internal server error
而不是jqueryurl
,因为500错误代码表明服务器代码中出现了错误。作为建议,您应该使用implement
try - catch
并在某处记录异常,以便能够解决此类问题。