加载资源失败:服务器响应状态为500(内部服务器错误)

时间:2019-05-23 01:23:09

标签: c# asp.net-mvc iis

我用自动完成方法构建了一个Web表单,该程序在IDE中运行良好。但是在将应用程序发布到IIS之后,该方法不起作用。控制台显示此错误`无法加载资源:服务器响应,状态为500(内部服务器错误)Index2)。我怀疑jquery代码无法识别控制器名称。 enter image description here 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 个答案:

答案 0 :(得分:0)

如果您的_service.getCardList()返回null,则foreach将引发您尚未处理的异常。

这也许是您获得(500) internal server error而不是jquery url的原因,因为500错误代码表明服务器代码出了点问题。

建议,您应使用工具try - catch并将异常记录到某个地方,以便能够解决此类问题。