2

我在下面调用 JQuery 工作正常,但 porID 参数未正确发送到控制器。Net 而不是得到“porID”是“amp; porID”。Chrome 网络看到了这一点...

jQuery

oTable = $('#lista_cbo').dataTable({            
                "bServerSide": true,            
                "sAjaxSource": '@Url.Action("ListaGenerica", "Home", new { aController = "CBO", porID = true } )', 
                "bProcessing": true,
                "oSearch": {"sSearch": "" + id  + ""},
                "sPaginationType": "full_numbers",   
                "aoColumns": [
                            { "mDataProp": "CBOID", "sTitle": "ID", "sWidth": "16px" },
                            { "mDataProp": "Sigla", "sTitle": "Sigla", "sWidth": "64px" },
                            { "mDataProp": "Tipo", "sTitle": "Tipo", "sWidth": "64px" },
                            { "mDataProp": "Descricao", "sTitle": "Descrição" },                        
                            { "mData": null, "bSortable": false, "fnRender": function (o) {return '<a class="icone_16x16_detalhe" href=/CBO/Detalhar/' + o.aData["CBOID"] + '>D</a>';}}                          
                ],
            });

控制器 C#

[HandleError]
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult ListaGenerica(DataTables param, string aController, bool porID = false)
{
    var iniciaRegistrosEm = param.iDisplayStart;
    var totalRegistrosPorPagina = param.iDisplayLength;
    var totalColunas = param.iColumns;

    var result = ERP.Helpers.ListagemPadrao.ListaPadrao(
            aController, 
            param.iDisplayStart, 
            param.iDisplayLength,
            Request["mDataProp_" + param.iSortCol_0.ToString()],
            param.sSortDir_0,
            param.sSearch,
            porID
            );

    return Json(new
    {
        sEcho = param.sEcho,
        iDisplayStart = param.iDisplayStart,
        iTotalRecords = result.TotalRegistros,
        iTotalDisplayRecords = result.TotalRegistrosVisualizados, 
        aaData = result.Dados 
    }, JsonRequestBehavior.AllowGet);

}
4

2 回答 2

3

用@Html.Raw 包裹@Url.Action:

@Html.Raw(Url.Action("ListaGenerica", "Home", new { aController = "CBO", porID = true } ))

java 脚本可能弄乱了“&”符号。

于 2013-06-15T17:43:31.593 回答
0

您的代码看起来没有问题,假设获取请求您的 url 应该是这样的

Home/ListaGenerica/?acontroller=CBO&porId=true 

这是正确的,因为 porId 是查询字符串的一部分 &before 它的名字是好的

于 2013-06-15T17:34:54.843 回答