是否可以将XDocument作为参数传递给ASP.NET MVC中的操作?

时间:2011-05-19 18:13:49

标签: asp.net-mvc linq-to-xml

我想知道是否有可能在ASP.NET MVC中编写一个控制器动作,它将XDocument作为参数。这当然只是意味着表单帖子会发送一串XML。

接受这个作为参数,我需要做些什么特别的事情吗?

1 个答案:

答案 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
    }
}