【发布时间】:2010-04-13 03:43:58
【问题描述】:
我在 Pro ASP.NET MVC Framework 一书中应用了示例代码。
[AcceptVerbs(HttpVerbs.Post)]
public ViewResult CheckOut(Cart cart, FormCollection form)
{
if (cart.Lines.Count == 0)
{
ModelState.AddModelError("Cart", "Sorry, your cart is empty");
return View();
}
if (TryUpdateModel(cart.ShippingDetails, form.ToValueProvider()))
{
orderSubmitter.SubmitOrder(cart);
cart.Clear();
return View("Completed");
}
else
{
return View();
}
}
但是当我尝试在浏览器中填写订单时,它显示以下错误消息:
值不能为空或空。 参数名称:名称 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.ArgumentException:值不能为空或空。 参数名称:名称
书中的示例代码基于 ASP.NET MVC1,但我在 VS 2010 上使用 ASP.NET MVC 2 运行它们。它似乎是 ToValueProvider() 方法的某种变化。
如何解决这个问题,让mvc应用程序正常运行?非常感谢。
【问题讨论】: