#asp.net-mvc #linq-to-xml
#asp.net-mvc #linq-to-xml
Вопрос:
Мне интересно, возможно ли записать действие контроллера в ASP.NET MVC, который принимает в качестве параметра XDocument. Это, конечно, означало бы, что форма post отправила бы строку XML.
Есть ли что-нибудь особенное, что мне нужно было бы сделать, чтобы принять это в качестве параметра?
Ответ №1:
Вы могли бы написать пользовательский тип binder и зарегистрировать его в обработчике событий запуска приложения в global.asax:
protected void Application_Start()
{
ModelBinders.Binders.Add(typeof(XDocument), new YourXDocumentBinder());
}
Конвейер MVC автоматически вызывал бы связующее средство, когда он сталкивался с действием с аргументом XDocument .
Реализация binder будет выглядеть примерно так:
public class YourXDocumentBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
// handle the posted data
}
}