2012-10-18 28 views
0

我有一個類,它看起來是這樣的:自定義序列在ASP.NET MVC API

public class Position 
{ 
    public int X { get; set; } 
    public int Y { get; set; } 
} 

假設類似這樣的數據合同:

[DataContract] 
public class MyModel 
{ 
    [DataMember(name="position")] 
    public Position Position { get; set; } 
} 

我想送此位置值均爲客戶端使用類似這樣的值:

JSON:{ "position": "1,2" }

XML:<position>1,2</position>

我只補充一點,我並不想這樣做:

JSON:{ "position": { "data": "1,2" } }

XML:<position><data>1,2</data></position>

如果可能,我寧願不將它注入整個序列化管道。我曾在一個Web控制器上工作,但API控制器證明有點棘手。做這個的最好方式是什麼?

感謝

UPDATE

在這種情況下,決定使用位置字段是(例如{ "position": { "X": 1, "Y": 2 } }),但我會離開這個開放和更新它,如果我遇到一個解決方案。

+0

你是如何得到它在標準MVC控制器上工作的? –

回答

0

你可以使用一個視圖模型:

[DataContract] 
public class PositionViewModel 
{ 
    [DataMember(name = "position")] 
    public string Position { get; set; } 
} 

,然後根據需要您的Position域模型,並在控制器動作視圖模型之間的映射。