我想知道是否有可能在ASP.NET MVC中编写一个控制器动作,它将XDocument作为参数。这当然只是意味着表单帖子会发送一串XML。
接受这个作为参数,我需要做些什么特别的事情吗?
答案 0 :(得分:6)
您可以编写自定义类型绑定器并在global.asax中的Application Start事件处理程序中注册它:
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
}
}