jQuery的ajax请求导致未找到错误。

4

我是MVC的新手,尝试了一些东西,但无法使其正常工作。

我有一个脚本,应该根据下拉列表的选择在页面中插入一个局部视图。

$(function () {
    $('#ddTipologiaFattura').change(function () {
        var selectedID = $(this).val();
        $.ajax({
           url: '/Admin/Fatturazione/GetPartial/' + selectedID,
           contentType: 'application/html; charset=utf-8',
           type: 'GET',
           dataType: 'html'
           })
           .success(function (result) {
               $('#partialPlaceHolder').html(result);
           })
           .error(function (xhr, status, error) {
               alert(status + '\n' + error)
           });
        });
   });

这是我的控制器~/Areas/Admin/Controllers/FatturazioneController.cs
    [RouteArea("Admin")]
    [Route("Fatturazione/{action}")]
    public class FatturazioneController : Controller
    {
        private MyEntity db = new MyEntity();

        public ActionResult GetPartial(int partialViewId)
        {
            if (partialViewId == 0)
            {
                var fatturaAziendaVM = new FatturaPerAziendaViewModel();
                ViewBag.Intestatario = new SelectList(db.Azienda, "AziendaNome", "AziendaNome");
                return PartialView("~/Areas/Admin/Views/Fatturazione/_ListaAziende.cshtml", fatturaAziendaVM);
            }
            var fatturaVM = new FatturaViewModel();
            return PartialView("~/Areas/Admin/Views/Fatturazione/_Intestatario.cshtml", fatturaVM);
        }

我不断收到脚本出现“未找到”错误的提示。我做错了什么?

你能否直接从浏览器访问你为 AJAX 请求设置的 URL? - lucasnadalutti
不,我只能从返回视图而不是部分视图的控制器中访问其他ActionResults。 - Giulia Lesetti
我的意思是你应该尝试直接从浏览器发出请求,以检查URL是否可访问。这将是调试问题的第一步。 - lucasnadalutti
1个回答

2

你的路由只考虑了操作,而没有考虑ID,这就是为什么它失败的原因。你应该针对每个操作更新路由以考虑ID,或将ID作为查询字符串参数附加。

 $.ajax({
       url: '/Admin/Fatturazione/GetPartial?partialViewId=' + selectedID,

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接