制作一个“;下拉列表“;使用具有“0”的类输入;DropDownlistFor“;陈述

本文关键字:陈述 DropDownlistFor 输入 下拉列表 一个 | 更新日期: 2023-09-27 18:11:55

我正试图使用带有"DropDownlistFor"语句的类输入来创建一个"DropDownlist"。

为了使"SelectListItem"正常工作,我必须将"using System.Web.Mvc"添加到引用列表中。

线路中存在错误:"@Html.DropDownListFor(m => m.Id, Model.DDLList, "Please select");"

它指出:'System.Web.Mvc.HtmlHelper<dynamic>'没有名为'DropDownListFor'的适用方法,但似乎有一个同名的扩展方法。无法动态调度扩展方法。请考虑强制转换动态参数或在不使用扩展方法语法的情况下调用扩展方法。

Class1.cs

using System.Web.Mvc;
namespace ddlFor.Models
{
    public class Dropdown
    {
        public string Id { get; set; }
        public List<SelectListItem> DDLList
        {
            get
            {
                return new List<SelectListItem>() 
                { 
                    new SelectListItem
                    { 
                        Text = "Yes", 
                        Value = "1", 
                        Selected = true
                    },
                    new SelectListItem
                    { 
                        Selected = true, 
                        Value = "0", 
                        Text = "No"
                    }
                };
            }
        }
    }
}

HomeController.cs

using ddlFor.Models;
namespace ddlFor.Controllers
{
    public class HomeController : Controller
    {
        [HttpGet]
        public ActionResult Index()
        {
            return View(new Models.Dropdown());
        }
    }
}

Index.cshtml

@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
    @Html.DropDownListFor(m => m.Id, Model.DDLList, "Please select");
}

制作一个“;下拉列表“;使用具有“0”的类输入;DropDownlistFor“;陈述

我猜您没有为视图配置模型。添加

@model ddlFor.Models.DropDown

在你视野的顶端。这使得您的视图是"强类型的",如果不这样做,Model的类型将是dynamic,这将导致您的异常。另请参阅:什么导致";扩展方法不能被动态调度";在这里

将视图Index.cshtml修改为

@Html.DropDownList("ddlSelectID", Model.DDLList,"Please select")

*之后,您可以使用jqueryonchange将值与ID绑定。