您可以使用自定義模型聯編程序。開始一個視圖模型,將代表該XML結構:
[XmlRoot("xBalance")]
public class XBalance
{
public string MemberCode { get; set; }
}
然後寫這個視圖模型自定義模型粘合劑:
public class XBalanceModelBinder : IModelBinder
{
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
using (var reader = XmlReader.Create(controllerContext.HttpContext.Request.InputStream))
{
var serializer = new XmlSerializer(typeof(XBalance));
return serializer.Deserialize(reader);
}
}
}
將在Application_Start
註冊:
ModelBinders.Binders.Add(typeof(XBalance), new XBalanceModelBinder());
現在您的控制器操作可能如下所示:
[HttpPost]
[ValidateInput(false)]
public ActionResult Index(XBalance model)
{
...
}
您可能需要使用[ValidateInput(false)]
屬性修飾您的操作,因爲您將向其發佈XML,而ASP.NET不喜歡將諸如<
和>
之類的字符發送到服務器。