Jquery 数据表中的复合 ID

Composite Id in Jquery DataTable

我正在使用 DataTable,我需要执行 link 来访问一行。但是该行有一个复合键

密钥由IdEnvironment(int)和一个Limit(十进制)组成

这是我的模型:

public partial class ApprovalHierarchy
{
    [Required]
    [Display(Name = "Ambiente")]
    [DataTables(DisplayName = "Ambiente", MRenderFunction = "encloseInEmTag",Order =1)]
    public int IdEnvironment { get; set; }

    [Required]
    [Display(Name = "Límite de aprobación")]
    [DataTables(DisplayName = "Límite de aprobación", MRenderFunction = "encloseInEmTag",Order =1)]
    [RegularExpression("^[0-9]+([.][0-9]{1,2})?$", ErrorMessage = "El límite debe de ser un número con dos decimales")]
    public decimal Limit { get; set; }

    [Display(Name = "Nombre")]
    [Required]
    public string Name { get; set; }

    [Display(Name = "Descripción")]
    public string Description { get; set; }
    public System.DateTime CreationDate { get; set; }
    [Required]
    [Display(Name = "Moneda")]
    public Nullable<int> IdCurrency { get; set; }

    public virtual Environment Environment { get; set; }
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<AspNetUsers> AspNetUsers { get; set; }

    public virtual Currency Currency { get; set; }
}

}

当我把DataTable Annotation `MRenderFunction = "encolseInEmTag" link 的 ID 发生了变化,但我需要将其作为复合键发送到参数中,以便在我的控制器中访问此方法:

    // GET: /ApprovalHierarchy/Details/5
    public ActionResult ModalDetails(int? id,decimal? limit)
    {
        if (id == null || limit ==null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        ApprovalHierarchy approvalHierarchy = db.ApprovalHierarchy.First(x => x.IdEnvironment==
        id && x.Limit == limit);
        if (approvalHierarchy == null)
        {
            return HttpNotFound();
        }
        return PartialView("Details",approvalHierarchy);
    }

我解决了在模型中创建新属性并在控制器中设置值的问题。

模型属性:

[Key,DataTables(MRenderFunction = "encloseInEmTag",Visible =false)]
public string CompositeId { get; set; }

控制器:

 row.CompositeId = query.ElementAt(i).IdEnvironment + "?Limit=" + query.ElementAt(i).Limit.ToString().Replace(",",".");