Nếu tôi có quan điểm mạnh mẽ-gõ sau:ASP.NET MVC 2 - Binding Để Tóm tắt Mẫu
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<XXX.DomainModel.Core.Locations.Location>" %>
đâu Location là lớp trừu tượng.
Và tôi đã Controller sau đây, mà chấp nhận một mô hình mạnh mẽ, đánh máy thông qua một POST:
[HttpPost]
public ActionResult Index(Location model)
tôi nhận được một lỗi runtime nêu "Không thể Tạo Tóm tắt Lớp
nào Tuy nhiên - tôi không chắc giải pháp tốt nhất là gì ở đây
Tôi có nhiều loại bê tông (khoảng 8), và đây là chế độ xem bạn c một thuộc tính chỉnh sửa duy nhất của lớp trừu tượng.
Điều tôi đã cố gắng để làm là tạo quá tải cho tất cả các loại bê tông khác nhau và thực hiện logic của tôi theo một phương pháp chung.
[HttpPost]
public ActionResult Index(City model)
{
UpdateLocationModel(model);
return View(model);
}
[HttpPost]
public ActionResult Index(State model)
{
UpdateLocationModel(model);
return View(model);
}
vv vv
Và sau đó:
[NonAction]
private void UpdateLocationModel (Location model)
{
// ..snip - update model
}
Nhưng điều này không làm việc, hoặc, MVC than phiền các phương pháp hành động là mơ hồ (cũng có ý nghĩa).
Chúng ta làm gì? Chúng ta có thể đơn giản không liên kết với một mô hình trừu tượng?
Tốt câu hỏi. Quan tâm đến việc xem câu trả lời! –
Tôi tò mò liệu bạn có bao giờ tìm ra cách tốt hơn để xử lý việc này không? –
@Mystere Man - không. Tôi đã không phải làm điều đó một lần nữa. Nếu tôi đã làm, tôi sẽ làm những gì câu trả lời chấp nhận cho thấy. – RPM1984