0

JSON を使用してクラスのデータを Web ページにレンダリングすると、クラス名が完全な名前空間を含むフルネームとしてレンダリングされます。C# で属性を使用してクラス名にエイリアスを与える方法は何ですか。

{"mycompany.productname.classname":"somevalue"} のようなクラスの完全な名前を公開したくありません

{"classname":"somevalue"} のようにレンダリングしたい

以下は Receptions.aspx.cs のコードです //Receptions.aspx の対話ロジックが含まれています

   public partial class Receivings : Page
    {                
        [WebMethod(EnableSession = true)]
    public static object GetReceivingDetails(int pId)
    {
        try
        {
            RecDetail recDetail = new AccountsBL().GetReceivingDetails(pId);

            //Return result to jTable
            return new { Result = "OK", Records = recDetail };
        }
        catch (Exception ex)
        {
            return new { Result = "ERROR", Message = ex.Message };
        }
    }
}

レンダリングされた JSON を以下に示します

ここに画像の説明を入力

上記のスクリーンショットに示すように、JSOn は次のとおりです。

{"d":{"Result":"OK","Records":{"__type":"ERP.Models.Accounts.RecDetail","Id":0,"Mode":0,"Amount":0,"CatId":0,"CatTypeId":0,"RecId":0,"PayerId":0,"Cash":{"Id":1,"Thousand":30,"FiveHundred":0,"Hundred":0,"Fifty":0,"Twenty":0,"Ten":0,"Five":0,"Two":0,"One":0,"RecId":0,"PayerId":0,"CashRec":30000,"Notes":"xccxvcxcvzc"},"Cheque":{"Id":5,"Bank":"HDFC","Branch":"6868","No":"452326424","Date":"5/5/2013 12:00:00 AM","Amount":10000,"RecId":0,"PayerId":0,"Notes":"asdfasdfasdf"},"DD":{"Id":1,"Bank":"SBI","Branch":"354356","No":"141234123","Date":"5/5/2013 12:00:00 AM","Amount":10000,"RecId":0,"PayerId":0,"Notes":"sdfgsfdgsdfg"}}}}

以下はRecDetailクラスです

namespace ERP.Models.Accounts
{
    [ERPAttributes("RecDetail")]
    public class RecDetail
    {
        public int Id { get; set; }

        public byte Mode { get; set; }

        public int Amount { get; set; }

        public byte CatId { get; set; }

        public byte CatTypeId { get; set; }

        public int RecId { get; set; }

        public int PayerId { get; set; }

        public Cash Cash { get; set; }

        public Cheque Cheque { get; set; }

        public DD DD { get; set; }
    }
}
4

0 に答える 0