我正在使用ASP.NET MVC的RC1.
我正在尝试扩展Phil Haack’s模型绑定示例.我正在尝试使用默认模型绑定器来绑定以下对象:
public class listofProducts { public int Id { get; set; } public string Title{ get; set; } List<Product> Items { get; set; } } public class Product { public string Name { get; set; } public decimal Price { get; set; } }
我正在使用Phil的示例中的代码进行一些更改:
控制器:
using System.Collections.Generic; using System.Web.Mvc; namespace TestBinding.Controllers { [HandleError] public class HomeController : Controller { public ActionResult Index() { ViewData["Message"] = "Welcome to ASP.NET MVC!"; return View(); } //Action method on HomeController public ActionResult UpdateProducts(listofProducts productlist) { return View(productlist); } } public class Product { public string Name { get; set; } public decimal Price { get; set; } } public class listofProducts { public int Id { get; set; } public string Title { get; set; } List<Product> Items { get; set; } } }
视图:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %> <asp:Content ID="indexHead" ContentPlaceHolderID="head" runat="server"> <title>Home Page</title> </asp:Content> <asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server"> <form method="post" action="/Home/UpdateProducts"> <input type="text" name="productlist.id" value="99" /> <input type="text" name="productlist.Title" value="SomeTitle" /> <input type="hidden" name="productlist.Index" value="0" /> <input type="text" name="productlist.items[0].Name" value="Beer" /> <input type="text" name="productlist.items[0].Price" value="7.32" /> <input type="hidden" name="productlist.Index" value="1" /> <input type="text" name="productlist.Items[1].Name" value="Chips" /> <input type="text" name="productlist.Items[1].Price" value="2.23" /> <input type="hidden" name="productlist.Index" value="2" /> <input type="text" name="productlist.Items[2].Name" value="Salsa" /> <input type="text" name="productlist.Items[2].Price" value="1.23" /> <input type="submit" /> </form> </asp:Content>
我的问题是,简单类型(Id和Title)出现在productlist对象中,但不出现在List中.所以:
>我的代码是否不好(不会感到惊讶)?
>默认模型绑定器可以处理listofProducts对象吗?
>如果默认模型绑定器不能处理这种类型的对象,我需要做什么(如果可能的话,示例)?
提前致谢.