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; }
}
}