我在mvc3中开发了会计应用程序。它在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面板中会出现以下错误。说明:HTTP404。您正在寻找的资源(或其依赖项之一)可能已被删除,名称更改或暂时不可用。请查看以下URL,并确保其拼写正确。
要求的网址:/CBS/JV/@Url.Action("GetVNO“,” JV“)
我通过在这样的控制器中添加错误消息解决了我的问题。
[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中正常工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句