为什么我收到此错误?当然,我的第一个模型上不存在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>
答案 0 :(得分:1)
MetaData
扩展类纯粹用于验证。如果您的基本模型没有这些属性......它将无效。
所以你需要这个视图才能接受存在的属性:
[MetadataType(typeof(IssueMetaData))]
public partial class Issue
{
public string SelectIssuePriority { get; set; }
}
您需要MetaData
的{{1}}类才能使用模型验证。