0

我在 mvc3 中开发会计应用程序。它在 Visual Studio 2010 中正确运行。开发某些部分后,我想通过在 IIS7.5 上部署来检查它。它部署正确,但没有命中我用来通过 AJAX 和 jquery 从数据库获取数据的控制器操作。下面是我的控制器方法。

[HttpPost]
public JsonResult AutocompleteSuggestions(string term)
{

        var namelist = objSvc.GetAutoCompData(term);


        return Json(namelist, JsonRequestBehavior.AllowGet);

    }

下面是我的javascript函数,它使用这个控制器函数并从数据库中获取结果

$(document).ready(function () {
$(function () {
    $("#AcCode").autocomplete({

        source: function (request, response) {

            $.ajax({
                url: '@Url.Action("AutocompleteSuggestions", "Home")', //"/Home/AutocompleteSuggestions",
                 type: "POST", dataType: "json",
                data: { term: request.term },
                success: function (data) {
                    response($.map(data, function (item) {
                       return {
                            label: item.code, value: item.desc                            
                        }
                        }))
                }
            })
        },
        minLength: 1,
        select: function (event, ui) {
             event.preventDefault();
             if (ui.item) {
             $("#Descrip").val(ui.item.value);
            $("#AcCode").val(ui.item.label);

            }

        }

    });
});



    }); 

它在 Visual Studio 2010 中运行时可以正常工作并给我准确的结果。但是在 iis7.5 中部署它后会出现错误 NetworkError: 404 Not Found
"zulfiqar/CBS/JV/@Url.Action(%22GetVNO%22,% 20%22JV%​​22)" 这里 Zulfiqar 是我的系统名称,cbs 是应用程序名称。

我还在发布时添加了可部署的程序集。请任何人告诉我为什么这会在 IIS 上出现错误。

注意:它在 firebug html 面板中给出以下错误。说明:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保其拼写正确。

请求的 URL:/CBS/JV/@Url.Action("GetVNO", "JV")

4

1 回答 1

0

我通过在这样的控制器中添加错误消息解决了我的问题。

 [HttpPost]
public JsonResult AutocompleteSuggestions(string term)
{
try
{
var namelist = objSvc.GetAutoCompData(term);
return Json(namelist, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
 return Json(new { ok = false, message = ex.Message });
}
}

它会在萤火虫中返回确切的错误。实际上它在自动完成功能的 url 参数中给出错误。" url: '@Url.Action("AutocompleteSuggestions", "Home")', " 传递了一些非法字符,因此控制器没有被击中。所以我改变了它,现在我的应用程序在 IIS 中正常工作。

于 2013-07-11T08:00:49.587 回答