模型与宣言的冲突

时间:2016-05-12 13:16:28

标签: asp.net asp.net-mvc-4

我一直收到此错误消息'错误2'模型'与声明'System.Web.Mvc.WebViewPage.Model'冲突,我无法弄清楚如何修复它。

 public partial class Person
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", 
         "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public Person()
        {
        }
        public int PersonID { get; set; }
        public string FullName { get; set; }
        public string FirstName { get; set; }
        public virtual EHR_Gender EHR_Gender { get; set; }
        public int GenderID { get; set; }
        public virtual Gender Gender { get; set; }
     }

我创建了这个分部类并添加了GenderData属性,以便能够传递一个SelectList项目列表。

    public partial class Person
    {
        public IEnumerable<SelectListItem> GenderData { get; set; }
    }

我收到以下代码中的冲突错误消息。

    @Html.DropDownListFor(m => m.Gender.Description, Model.GenderData, new { @class = "form-control" }) 

我在Google上搜索了一个解决方案。大多数修复程序与使用“模型”而非“模型”的人有关。这不是这种情况。

1 个答案:

答案 0 :(得分:1)

您显示的代码不会导致该错误。它的生成是因为您查看的某处使用了HtmlHelper方法,其中包含使用大写M模型的表达式,后跟另一个对@Model的引用,例如

@Html.TextBoxFor(Model => Model.SomeProperty) 
....
<div>@Model.AnotherProperty</div>

另请注意,如果您交换了上述元素的顺序,则会得到不同的异常。