System.Web.Mvc.HtmlHelper 不包含“DropDownListFor”的定义
本文关键字:DropDownListFor 定义 包含 Web Mvc HtmlHelper System | 更新日期: 2023-09-27 18:36:16
我收到如下所示的运行时异常,编译源代码没有显示任何问题。@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 类型导致的。当我在未解析的 SelectListItem 类型声明上按 Ctrl-. 时,我无意中选择了错误的命名空间。我选择了System.Web.WebPages.Html而不是System.Web.Mvc。这导致视图中出现半隐晦的运行时错误。解决方案是确保在控制器、视图模型等中使用正确的 SelectListItem 类型,方法是在 using 语句中使用正确的命名空间,或者根据需要完全限定 SelectListItem 类型。(希望不需要...
晚了,但是把"@"放在Model.EView.EStatus前面怎么样?
所以:
@Html.DropDownListFor(m => m.EView.EStatusId, Model.EView.EStatus)