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>)

System.Web.Mvc.HtmlHelper 不包含“DropDownListFor”的定义

此错误可能是由于使用了错误的 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)