[英]Html.EditorFor throws property not found error
我从已经难倒我的MVC3 Web表单视图得到一个奇怪的错误。
设置:我定义了两个接口:
public interface IDbObject {
int Id { get; set; }
string Name { get; set; }
}
public interface IAutomobile : IDbObject {
string VIN { get; set; }
}
public class Automobile : IAutomobile {
public int Id { get; set; }
public string Name { get; set; }
public string VIN { get; set; }
}
我的视图是一个强类型的视图: System.Web.Mvc.ViewPage<IAutomobile>
和我的控制器
当我尝试在Name属性上使用EditorFor时
<%= Html.EditorFor(a => a.Name) %>
我收到异常: System.ArgumentException:找不到属性IAutomobile.Name。
但是,如果我注释掉此语句,则我在VIN上的EditorFor继续正常运行:
<%= Html.EditorFor(a => a.VIN) %>
有什么我想念的吗?
这听起来像EditorFor
的限制。 可能不够聪明,无法检查实现的接口的属性。
找到解决方案:
我在IAutomobile界面上重新实现了“名称”属性:
public interface IAutomobile : IDbObject {
new string Name { get; set; }
string VIN { get; set; }
}
我没有对我的具体类进行任何更改,并且EditorFor方法可以使用Name属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.