繁体   English   中英

HTML.EditorFor抛出属性未找到错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM