【发布时间】:2013-05-30 12:30:46
【问题描述】:
我的 PartialView DropDownListFor 出现错误:
The ViewData item that has the key PlanId is of type System.int32 but must be of type
IEnumerable<SelectListItem>
@Html.DropDownListFor(model => model.PlanId, (SelectList)ViewBar.PlanNameSelectList, new {@class = "short" })
当我转到最初保存此代码的页面时,不会弹出此错误。只要我取出代码中的 DropDownListFor 元素,我所做的就是将之前与另一个 partialView 一起工作的代码的核心部分删掉。那个partialView我不需要它们,但是现在我需要它们,问题就来了。
如果能帮助我解决这个问题,我将不胜感激。其他资源,例如对部分的调用,如下所示
@Html.Partial("location", new MAO.Models.ViewModels.CreateTemplateModel{})
这是模型
public class CreateTemplateModel {
[Required(ErrorMessage = "{0} is required.")]
[RegularExpression("^[0-9]+$", ErrorMessage="Template Id can only contain numbers")]
[Display(Name = "Template ID")]
public string TNumber { get; set; }
[Required(ErrorMessage = "{0} is required.")]
[RegularExpression("^.[0-9]{4}(-[0-9]{3})?$", ErrorMessage = "H# Must follow either @XXXX or @XXXX-XXX pattern")]
[Display(Name = "HNumber")]
public string HNumber { get; set; }
[RequiredIfOtherIsEmpty("NewPlanName", ErrorMessage = "Please enter a Plan Name")]
[Display(Name = "Select Existing Plan Name")]
public int PlanId { get; set; }
[MaxLength(500, ErrorMessage="{0} can't be longer than 500 characters")]
[Display(Name = "Enter New Plan Name")]
public string NewPlanName { get; set; }
[RequiredIfOtherIsEmpty("NewParentOrganization", ErrorMessage = "Please enter a Parent Organization")]
[Display(Name = "Select Existing Parent Organization")]
public string ParentOrganization { get; set; }
[MaxLength(500, ErrorMessage = "{0} can't be longer than 500 characters")]
[Display(Name = "Enter New Parent Organization")]
public string NewParentOrganization { get; set; }
[Required(ErrorMessage = "{0} is required.")]
public int TemplateTypeId { get; set; }
}
有一个很长的控制器,所以我不打算发布它。如果控制器的某些部分会有所帮助,我可以发布这些部分以及我可能忘记包含的其他任何内容
【问题讨论】:
-
视图和局部视图的强类型模型有区别吗?
-
我刚刚开始从事这一切工作,并且接受过 0 次经典培训,所以说实话,我什至不知道强类型在 C# 和模型中的含义。
-
没问题!强类型视图意味着模型绑定到它。如果您的视图是强类型的,您会在顶部看到一个类似于@model MAO.Models.ViewModels.CreateTemplateModel 的模型声明。顺便说一句,当您渲染局部时,您正在创建一个新模型。有什么东西会使该模型饱和吗?
-
回答第一部分。是的,这是一个强类型模型。我不确定饱和度是什么意思。如果这意味着一个模型链接到两个页面,那么是。为了保持原始页面的完整性,我删除了一部分代码。
-
模型将两者联系起来,但它只是一个空模型,对吗?有什么可以填的吗?
标签: c# asp.net-mvc ienumerable html.dropdownlistfor asp.net-mvc-partialview