在IIS7.5上部署mvc3应用程序后,我的Controller操作未命中

时间:2013-07-09 09:33:05

标签: asp.net-mvc-3 iis-7.5

我在mvc3.it中开发会计应用程序在visual studio 2010中正确运行。开发了一些部分之后我想通过IIS7.5上的deplploy来检查它。它正确部署但它没有达到我用来通过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.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。

请求的网址:/CBS/JV/@Url.Action("GetVNO“,”JV“)

1 个答案:

答案 0 :(得分: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 });
}
}

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