我收到如下所示的运行时异常,编译源代码没有显示任何问题。 @html.TextBoxFor() 没有出现此问题,为什么 DropDownListFor 会出现这种情况?
@Html.DropDownListFor(m => m.EView.EStatusId, @Model.EView.EStatus)
public class EView
{
#region Constructor
public EView()
{
this.EDataView = new EDataViewModel();
}
#endregion
#region Properties
public int EStatusId { get; set; }
public EDataViewModel EDataView { get; set; }
public IEnumerable<SelectListItem> EStatus
{
get {
SelectListItem item = null;
List<SelectListItem> status = null;
status = new List<SelectListItem>();
item = new SelectListItem();
item.Text = "Open";
item.Value = "1";
status.Add(item);
item = new SelectListItem();
item.Text = "Closed";
item.Value = "2";
status.Add(item);
return status;
}
}
#endregion
}
System.Web.Mvc.HtmlHelper<EApp.ViewModels.AdminViewModel>
不包含 DropDownListFor
的定义和最好的扩展方法重载System.Web.Mvc.Html.SelectExtensions.DropDownListFor<TModel,TProperty>(System.Web.Mvc.HtmlHelper<TModel>, System.Linq.Expressions.Expression<System.Func<TModel,TProperty>>, System.Collections.Generic.IEnumerable<System.Web.Mvc.SelectListItem>)
有一些无效参数
最佳答案
此错误可能是由于使用错误的 SelectListItem 类型引起的。当我按下 Ctrl- 时,我无意中选择了错误的命名空间。关于我 Unresolved SelectListItem 类型声明。我选择了 System.Web.WebPages.Html 而不是 System.Web.Mvc。这导致 View 中出现半神秘的运行时错误。解决方案是确保您在 Controller、ViewModel 等中使用正确的 SelectListItem 类型,方法是在 using 语句中使用正确的命名空间,或者根据需要完全限定 SelectListItem 类型。 (希望不需要......)
关于c# - System.Web.Mvc.HtmlHelper 不包含 'DropDownListFor' 的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27793377/