2013-06-01 18 views
10

Tôi có chế độ xem Hiển thị đối tượng khách hàng bên dưới.'Mô hình' xung đột với tuyên bố 'System.Web.Mvc.WebViewPage <TModel> .Model

public Class Customer 
{ 
    public long Id { get; set; } 
    public string Name { get; set; } 
    public Address AddressInfo { get; set; } 
} 

public class Address 
{ 
    public string Details { get; set; } 
    public City CityInfo { get; set; } 
    public Region RegionInfo { get; set; } 
} 

Và Có một điều khiển để trả lại khách hàng để xem

public ActionResult GetCustomer(long Id) 
{ 
    return View("Customer",GetCustomer(Id)); 
} 

Và cuối cùng Xem Is,

[Customer.cshtml] 
@model Customer; 
Name: @Model.Name 
Address Details: @Html.Partial("Address",Model) 

[Address.cshtml] 
@model Customer; 
@Model.CityInfo.Name, @Model.RegionInfo.Name 

Tất cả có vẻ tốt đẹp. Nhưng tôi nhận được xung đột "Model" với tuyên bố 'System.Web.Mvc.WebViewPage.Model "lỗi trên @ Html.Partial (" Address ", Model) tôi đã làm tương tự trước đây trong nhiều dự án và không có vấn đề.

Tôi không biết đầu mối tiếp tục.

Ai đó có thể giúp tôi giải quyết vấn đề này.

Tôi đã xem nhiều bài đăng về loại lỗi này. Nhưng những người đó không phải với @ Html.Partial().

Cảm ơn & Kính trọng,

Saravanakumar R.

Trả lời

30

Tôi đã giải quyết vấn đề này. Cảm ơn người xem.

Sự cố ở chế độ xem của tôi Tôi đang sử dụng ở đâu đó Model => Model. Nó phải là model => model.

+0

Tôi vừa có cùng một vấn đề, bất kỳ ý tưởng TẠI SAO đây là vấn đề ... Thay đổi thủ đô đã sửa lỗi này cho tôi nhưng tôi rất muốn biết tại sao. – Waller

+0

Mô hình là tài sản của IView. trong đó mô hình là một tham chiếu của dữ liệu (mô hình), chúng ta trở về từ Action Action. :-) – Sravan

0

Các Model là loại Customer chứ không phải là loại Address trong một phần của bạn. Bạn cần phải thay đổi kiểu mô hình trong Address.cshtml-Address và thay đổi cuộc gọi đến một phần để vượt qua trong AddressInfo tài sản:

@Html.Partial("Address", Model.AddressInfo) 

xem mã của bạn trở thành:

[Customer.cshtml] 
@model Customer; 
Name: @Model.Name 
Address Details: @Html.Partial("Address",Model.AddressInfo) 

[Address.cshtml] 
@model Address; 
@Model.CityInfo.Name, @Model.RegionInfo.Name 
+0

Cảm ơn bạn đã trả lời, Nhưng tôi không thể thay đổi mô hình Address.cshtml thành Địa chỉ vì tôi cần các giá trị trong TryUpdateModel. – Sravan

+0

Bạn phải thay đổi nó thành 'Address' vì' CityInfo' và 'RegionInfo' là các thuộc tính của' Address' không phải là 'Customer' – levelnis

+0

Tại sao bạn lại nhắc đến' TryUpdateModel'? Bạn đang cố gắng làm mô hình ràng buộc theo cách thủ công? Nó sẽ được tự động – levelnis

Các vấn đề liên quan