【发布时间】:2012-01-12 05:43:17
【问题描述】:
我有两个模型类,它们具有一对多的关系。
public class CycleType
{
[Required(ErrorMessage = "Cycle is required.")]
public int CycleTypeID { get; set; }
[Required(ErrorMessage = "Cycle Type is required.")]
[StringLength(20, ErrorMessage = "Cycle Type may not be longer than 20 characters")]
public string Type { get; set; }
public List<CycleModel> CycleModels { get; set; }
}
public class CycleModel
{
public int CycleModelID { get; set; }
[DisplayName("Cycle Type")]
[Required(ErrorMessage = "Cycle is required.")]
public int CycleTypeID { get; set; }
[Required(ErrorMessage = "Model is required.")]
[StringLength(20, ErrorMessage = "Model may not be longer than 20 characters")]
public string Model { get; set; }
public virtual CycleType CycleType { get; set; }
}
剃刀文件。
<div class="editor-label">
@Html.LabelFor(model => model.CycleTypeID)
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.CycleTypeID,
(SelectList)ViewBag.CycleType,
"Select Cycle Type",
new { id = "ddlCycleType" })
@Html.ValidationMessageFor(model => model.CycleTypeID)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Model)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Model)
@Html.ValidationMessageFor(model => model.Model)
</div>
1)我的第一个问题是,当我选择选择循环类型时,Validaion 函数没有触发,它只会返回错误
The ViewData item that has the key 'CycleTypeID' is of type 'System.Int32' but must be of type 'IEnumerable<SelectListItem>'.
2)第二个问题是,当我选择其中一种循环类型并将值建模为 20 多个字符时,验证器可以按我的预期进行检查。但我再次收到相同的错误消息。
The ViewData item that has the key 'CycleTypeID' is of type 'System.Int32' but must be of type 'IEnumerable<SelectListItem>'.
我们将不胜感激。
【问题讨论】:
标签: c# asp.net-mvc entity-framework validation