Вы можете использовать пользовательскую модель переплета.Начните с модели представления, которая будет представлять эту структуру 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 не нравится, когда такие символы, как <
и >
отправляются на сервер.