友好的网址导致Ajax无法获得正确的网址

Se0ng11

我将URL转换为用户友好的格式,但是问题是,这导致我的AJAX无法正常工作:它没有返回JSON,而是以响应text/html; charset=utf-8,知道吗?

本地主机/首页/票证?tab = 0

本地主机/首页/票务/ 0

jQuery数据表

self.$('#tblticket').dataTable({
    "bDestroy": true,
    "bServerSide": true,
    "sAjaxSource": '/Home/Ticket/AjaxHandler',
    "fnServerParams": function (aoData){
     aoData.push( { "name": "sStatus", "value": status } );
 },

路由器

routes.MapRoute(
   name: "TicketRoute",
   url: "Ticket/{tab}",
   defaults: new { controller = "Ticket", action = "Index", tab = UrlParameter.Optional }
);

更新1

如果我将路由器更改为此,它可以工作,但是URL看起来像localhost / Home / Ticket / Index / 0路由器会干扰ajax调用,知道吗?我希望url看起来像是localhost / Home / Ticket / 0,并且仍然能够进行ajax调用,我不知道,该怎么办?

        routes.MapRoute(
            name: "TicketRoute",
            url: "Ticket/Index/{tab}",
            defaults: new { controller = "Ticket", action = "Index", tab = UrlParameter.Optional }
        );

在我的MVC4版本中,我执行了以下操作:

  1. 在控制器中创建了DataTables可以访问的方法

    [HttpGet]
    public ActionResult GetRecords(jQueryDataTableParamModel param)
    {
        #region ViewModel Binding with TotalRecords count, pagination and search
        List<vm_DataTable_TableName> model;
        int totalRecords = 0;
        using (DBEntities db = new DBEntities())
        {
            model = Mapper.Map(db.GetRecords(), new List<vm_DataTable_TableName>()); //Using AutoMapper for viewmodel bindings
            totalRecords = model.Count();
        }
        #endregion
    
        #region Filtration/Pagination
        var filtered = ***Filter depending on your needs***
    
        var displayed = filtered.Skip(param.iDisplayStart).Take(param.iDisplayLength);
        #endregion
    
        #region Convert Result to String Array for JSON Conversion/Trim excess white space to reduce size of result
        IEnumerable<string[]> result = new List<string[]>();
        result = displayed
                 .Select(s => new string[] {
                    (!string.IsNullOrEmpty(Convert.ToString(s.ID))) ? s.ID.ToString().Trim() : string.Empty,
                    (!string.IsNullOrEmpty(s.val_1)) ? s.val_1.Trim() : string.Empty,
                    (!string.IsNullOrEmpty(s.val_2)) ? s.val_2.Trim() : string.Empty,
                    (!string.IsNullOrEmpty(s.val_3)) ? s.val_3.Trim() : string.Empty
                 });
        #endregion
    
        return Json(new
        {
            sEcho = param.sEcho,
            iTotalRecords = totalRecords,
            iTotalDisplayRecords = filtered.Count(),
            aaData = result
        },
        JsonRequestBehavior.AllowGet);
    }
    
  2. 在jQuery DataTables初始化中:

    $('#tblticket').dataTable({
        "bDestroy": true,
        "bServerSide": true,
        "sAjaxSource": '@Url.Content("~/Home/Ticket/GetRecords")', //Server inserted url
        "fnServerData": function Data(sSource, aoData, fnCallback) {
            $.ajax({
                "dataType": "json",
                "contentType": "application/json; charset=utf-8",
                "type": "GET",
                "url": sSource,
                "data": aoData,
                "success":
                    function (msg) {
                        //Whatever other actions you want to do with the data
                        fnCallback(msg);
                    },
                "failure":
                    function (XMLHttpRequest, textStatus, errorThrown) {
                        alert(XMLHttpRequest.status);
                        alert(XMLHttpRequest.responseText);
                    }
            });
        }
    });
    

使用MVC区域时,“ @ Url.Content(“”)'也很友好。

当我第一次开始使用此插件时,这些系列文章对我有很大帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

DNN友好网址模块无法正确重写网址

来自分类Dev

AJAX无法正确解析网址

来自分类Dev

无法快速获得网址

来自分类Dev

CakePHP友好的seo网址

来自分类Dev

Nginx配置友好的网址

来自分类Dev

CakePHP友好的seo网址

来自分类Dev

YII友好的SEO网址

来自分类Dev

友好的网址和?标签

来自分类Dev

路线中的网址友好

来自分类Dev

无法获取正确的网址问题

来自分类Dev

友好的网址-缓存错误的路线

来自分类Dev

友好的网址和锚点

来自分类Dev

Django:使分页网址SEO友好

来自分类Dev

htaccess用于SEO友好的网址

来自分类Dev

.htaccess-“友好的网址”(段)

来自分类Dev

友好的网址-缓存错误的路由

来自分类Dev

htaccess用于SEO友好的网址

来自分类Dev

mod_rewrite无法正确映射网址

来自分类Dev

网址无法在Laravel中正确显示

来自分类Dev

Ajax网址无法使用+ Symfony2

来自分类Dev

无法将变量传递给Ajax网址

来自分类Dev

无法通过请求访问AJAX网址,BeautifulSoup

来自分类Dev

模块的友好网址,如何从网址中删除模块?

来自分类Dev

如何在htaccess中将网址转换为友好网址

来自分类Dev

.htaccess将网址重定向到网址友好子域

来自分类Dev

如何获得缩短网址的目标网址?

来自分类Dev

删除ID和?从url使网址seo友好

来自分类Dev

htaccess seo网址友好,带有\和/

来自分类Dev

htaccess仅适用于友好的网址