Html.EditorFor throws属性找不到错误
问题描述:
我从MVC3 webforms视图中看到一个奇怪的错误,它让我难堪。Html.EditorFor throws属性找不到错误
设置: 我有两个接口定义:
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无法b e找到了。
但是,如果我注释掉这个说法,我对VIN EditorFor继续正常运行:
<%= Html.EditorFor(a => a.VIN) %>
有我丢失的东西?
答
发现的解决方案:
我重新实现IAutomobile界面上的“名称”属性:
public interface IAutomobile : IDbObject {
new string Name { get; set; }
string VIN { get; set; }
}
我做任何更改我的具体类和EditorFor方法能够一起工作Name属性。
我有一种感觉,这可能会导致在使用对象作为IDbObject时出现问题。 – 2011-03-05 15:51:11
你可能是对的......我会让你知道;) – 2011-03-05 15:54:20