iis 无法加载资源:服务器响应状态500(内部服务器错误)

wlzqhblo  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(361)

我用自动完成方法建立了一个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的替代控制器函数名称?

gojuced7

gojuced71#

如果您的_service.getCardList()传回null,则foreach会掷回您尚未行程的例外状况。
也许这就是为什么您得到的是(500) internal server error而不是jquery url,因为500错误代码表明服务器代码中出现了错误。
作为建议,您应该使用implementtry - catch并在某处记录异常,以便能够解决此类问题。

相关问题