假设我有一个看起来像这样的 ASP.NET MVC 3 控制器
public class MyController : Contoller
{
public ActionResult Edit(MyModel model)
{
/* doing some stuff with the model */
}
}
模型看起来像这样
public class MyModel
{
public string Property1 { get; set; }
public string Property2 { get; set; }
public ThatModel Property1 { get; set; }
public List<ThisModel> BunchOfThisModel { get; set; }
}
public class ThatModel
{
public string Property1 { get; set; }
public string Property2 { get; set; }
public string Property3 { get; set; }
public string Property4 { get; set; }
public string Property5 { get; set; }
public string Property6 { get; set; }
}
public class ThisModel
{
public string Property1 { get; set; }
public string Property2 { get; set; }
}
ASP.NET MVC 或 .NET(v4 可以,v4.5 不行)是否提供任何内置方法来编码模型(在这种情况下是 MyModel),以便可以将它作为表单 url 编码(又名x-www-form-urlencoded)?例如“property1=abc&property2=def”。但是,在将请求解码回模型时,ASP.NET MVC 有自己的方式来处理嵌套模型等。假设我正在使用自 .NET 1.1 以来提供的WebRequest / WebResponse API 模拟浏览器。
本质上,我想在测试中建立请求来验证
- 如果需要,通过绑定排除某些数据
- 如果需要,设置防伪令牌
- 恶意数据会得到相应处理
注意:现阶段未使用 ASP.NET Web API。因为我正在为现有应用程序编写(集成)测试,所以将模型作为 JSON、XML 或其他替代格式发送不适用于该问题。