Tôi đang sử dụng RC1 của ASP.NET MVC.Kiểu liên kết mô hình mặc định và các loại phức tạp bao gồm danh sách
Tôi đang cố gắng mở rộng Phil Haack's ví dụ ràng buộc mô hình. Tôi đang cố gắng sử dụng các mô hình mặc định chất kết dính để ràng buộc các đối tượng sau đây:
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; }
}
Tôi đang sử dụng mã từ ví dụ Phil với một số thay đổi:
Bộ điều khiển:
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; }
}
}
Xem :
<%@ 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>
Vấn đề của tôi là các loại đơn giản (Id và tiêu đề) xuất hiện trong danh sách sản phẩm ct, nhưng không phải Danh sách. Vì vậy:
- Mã của tôi có xấu không (sẽ không ngạc nhiên)?
- Trình kết nối mô hình mặc định có thể xử lý các đối tượng ListOfProducts không?
- Nếu trình kết nối mô hình mặc định sẽ không xử lý loại đối tượng này thì tôi cần phải làm gì (ví dụ nếu có thể)?
Xin cảm ơn trước.
Bạn không phải là giả. Tôi đã có cùng một vấn đề, nhưng đó là vì danh sách của tôi không phải là tài sản.Tôi đã có một cái gì đó tương tự như: Danh sách công khai Các mặt hàng, thay vì Danh sách công khai Các mặt hàng {get; bộ; } –