MVC API 応答から xsd および xsi 名前空間を削除する必要がありますが、機能させることができません。(それらを削除する必要があるのは、サード パーティのマップ プロバイダーに送信しているためであり、それらを含めると機能しないためです。) 他にもたくさんの質問を読みました。まったく同じことですが、答えは機能しません。この答えに従ってカスタムフォーマッタを実装しようとしましたが、残念ながら運もありません。誰かが私が何をする必要があるか知っていますか? あきらめて、代わりにハンドラーを使用する必要がありますか?
モデル:
[XmlType(TypeName = "MapPoints")]
[XmlRoot(DataType = "", Namespace = "http://tempuri.org/XMLFile1.xsd")]
public class MapPointList
{
public MapPointList()
{
Points = new List<MapPoint>();
}
[XmlElement("Point")]
public List<MapPoint> Points { get; set; }
}
コントローラ:
public class MyController : ApiController
{
public MyController()
{
var xmlFormatter = GlobalConfiguration.Configuration.Formatters.XmlFormatter;
xmlFormatter.SetSerializer<MapPointList>(new XmlSerializer(typeof (MapPointList)));
xmlFormatter.SetSerializer<MapPoint>(new XmlSerializer(typeof (MapPoint)));
}
[HttpGet]
public MapPointList SearchMap()
{
var items = new MapPointList();
// get the items
return items;
}
}
私のルートは次のようになります。
<MapPoints xmlns="http://tempuri.org/XMLFile1.xsd">
さらに情報を追加する必要がある場合はお知らせください。