2011-01-19 41 views
5

Tôi cảm thấy như tôi thiếu một số thứ cơ bản ở đây.Thuộc tính giao diện gốc không thể truy cập được qua giao diện cha trong trình trợ giúp Html

Tôi có 2 giao diện. Một được gọi là IIdentifiable xác định sự tồn tại của một thuộc tính Id. Thứ hai thực sự có thể là bất kỳ thứ gì cũng có thể nhận dạng được. Xem mã bên dưới.

public interface IIdentifiable 
{ 
    Guid Id { get; set; } 
} 
public interface IPerson : IIdentifiable 
{ 
    string Name { get; set; } 
} 

Vấn đề:

Khi sử dụng Html.HiddenFor (hoặc bất kỳ phương pháp helper khác) và các mô hình được đánh máy mạnh mẽ với giao diện IPerson, tôi nhận được một lỗi khi truy cập vào các tính chất của Giao diện IIdentifiable. Tôi có thể truy cập và hiển thị dữ liệu trong thuộc tính IIdentifiable bằng cách truy cập trực tiếp vào Model.Id nhưng không phải khi sử dụng biểu thức lambda và truy cập mô hình theo cách đó.

Lỗi tôi nhận được là "Thuộc tính * .IPerson.Id không thể tìm thấy".

Điều này chỉ có vẻ là trường hợp khi sử dụng công cụ xem Dao cạo. Tôi biết điều này đã được làm việc bằng cách sử dụng ASP.NET MVC 2 và công cụ xem WebForms. Tôi đã không thử nó trên ASP.NET MVC 3 bằng cách sử dụng công cụ xem WebForms được nêu ra.

Trả lời

2

Có, I have brought this với sự chú ý của Microsoft bằng cách mở một vé. Xem thêm this related question.

+0

Cảm ơn! Tôi đã tìm kiếm SO cho những điều này nhưng không bao giờ gặp chúng. Tôi sẽ đi sâu vào nguồn ngày hôm nay nếu tôi không nhận được câu trả lời. Cảm kích điều đó. Bây giờ cho phép hy vọng các địa chỉ Microsoft mà anh ta phát hành. –

0

Tôi luôn cảm thấy kém điên rồ hơn khi những người khác có cùng vấn đề với tôi. Như ai đó đã nói trong liên kết mà Darin cung cấp, đây là một công việc xung quanh hoặc bây giờ:

<%: Html.HiddenFor(m => (m as IIdentifiable).Id) %> 
Các vấn đề liên quan