Asp.net mvc 如何通过fiddler将自定义对象的xml传递给ASP.NET MVC操作方法

Asp.net mvc 如何通过fiddler将自定义对象的xml传递给ASP.NET MVC操作方法,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 2,我想测试一个MVC操作方法,该方法通过POST(例如Book)访问自定义类参数,但通过fiddler传递参数时遇到问题。下面是我的代码: [HttpPost] public ActionResult BookEdit(BookModel bookModel) { ... return View(...); } public class BookModel { public BookModel()

我想测试一个MVC操作方法,该方法通过POST(例如Book)访问自定义类参数,但通过fiddler传递参数时遇到问题。下面是我的代码:

 [HttpPost]  
  public ActionResult BookEdit(BookModel bookModel)
  {

            ...
            return View(...);
  }

 public class BookModel
    {
        public BookModel()
        {        
        }

        public BookModel(Book book)
        {
            this.Authors = book.Authors;
        }

        public List<Author> Authors { get; set; }
    }

    public  class Book
    {
        public List<Author> Authors = new List<Author>();
    }

    public class Author
    {
        public string Name { get; set; }
    }
[HttpPost]
public ActionResult BookEdit(BookModel BookModel)
{
...
返回视图(…);
}
公共类图书模型
{
公共图书模型()
{        
}
公共图书模型(图书)
{
this.Authors=book.Authors;
}
公共列表作者{get;set;}
}
公共课堂用书
{
公共列表作者=新列表();
}
公共类作者
{
公共字符串名称{get;set;}
}
下面是发布到action方法的xml

    <BookModel>
        <Authors>
            <Author>
                <Name>1</Name>              
            </Author>
<Author>
                <Name>2</Name>
            </Author>
        </Authors>
    </BookModel>

1.
2.
当我传递xml时,action方法的参数为null

有什么想法吗

当我传递xml时,action方法的参数为null

嗯,这很正常。我看不到您的任何代码会将此XML解析为BookModel对象。默认情况下,ASP.NET MVC不会这样做。它是针对JSON的,但不是XML


一种可能是将自定义Xml值提供程序编写为。另一种可能性是一个错误。还有一个是自定义模型活页夹。

Darin说得一针见血,但另一个问题是XML不能正确描述模型。图书模型>作者>作者>姓名(两次)?@Matthew Abbott我纠正了它。但还是不行,谢谢。如果默认支持JSON,我可以使用JSON intead。