CS1061:不包含定义

时间:2013-08-29 01:54:31

标签: c# asp.net-mvc data-annotations

为什么我收到此错误?当然,我的第一个模型上不存在SelectIssuePriority。我添加了它。

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS1061: 'Devcore' does not contain a definition for 'SelectIssuePriority' and no extension method 'SelectIssuePriority' accepting a first argument of type 'Devcore.' could be found (are you missing a using directive or an assembly reference?)

Source Error:


Line 77: 
Line 78:         <div class="editor-label">
Line 79:             <%: Html.LabelFor(model => model.SelectIssuePriority) %>
Line 80:         </div>
Line 81:         <div class="editor-field">

模型

namespace Devcore.Models
{
    [MetadataType(typeof(IssueMetaData))]
    public partial class Issue
    {

    }


    public class IssueMetaData 
    {
        [Required(ErrorMessage="Summary is required",AllowEmptyStrings = false)]
        public string Summary { get; set; }


        [Display(Name = "Priority")]
        [Required(ErrorMessage = "Priority is required", AllowEmptyStrings = false)]
        public string SelectIssuePriority { get; set; }
    }
 }

.aspx的

<div class="editor-label">
            <%: Html.LabelFor(model => model.SelectIssuePriority) %>
        </div>
        <div class="editor-field">
            <%: Html.DropDownList("SelectIssuePriority") %>
            <%: Html.ValidationMessageFor(model => model.SelectIssuePriority) %>
        </div>

1 个答案:

答案 0 :(得分:1)

IIRC,那些MetaData扩展类纯粹用于验证。如果您的基本模型没有这些属性......它将无效。

所以你需要这个视图才能接受存在的属性:

[MetadataType(typeof(IssueMetaData))]
public partial class Issue
{
    public string SelectIssuePriority { get; set; }
}

您需要MetaData的{​​{1}}类才能使用模型验证。