0

为什么我会收到此错误?当然,我的第一个模型上不存在 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; }
    }
 }

象素

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

1 回答 1

1

IIRC,那些MetaData扩展类纯粹是为了验证。如果您的基本模型没有这些属性..它将无法工作。

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

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

并且您需要MetaData该类DataAnnotations才能使用模型验证。

于 2013-08-29T01:59:27.527 回答