C# MVC的下拉列表:如何使其工作
我的模型是:C# MVC的下拉列表:如何使其工作,c#,asp.net-mvc,html.dropdownlistfor,C#,Asp.net Mvc,Html.dropdownlistfor,我的模型是: public string Vehicle public DropDownListModel() { List<SelectListItem> items = new List<SelectListItem>(); items.Add(new SelectListItem() { Text = "one", Value = "one" }); items.Add(new SelectListI
public string Vehicle
public DropDownListModel()
{
List<SelectListItem> items = new List<SelectListItem>();
items.Add(new SelectListItem() { Text = "one", Value = "one" });
items.Add(new SelectListItem() { Text = "two", Value = "two" });
SelectList items2 = new SelectList(items);
VehicleList = items2;
}
public string Vehicle
{
get;
set;
}
public SelectList VehicleList
{
get;
set;
}
}
我想将selectList呈现到DropdOnlist中,但我得到的是
我的看法是:
@using ( Html.BeginForm("Post","Guestbook"))
{
@Html.Label("Name") @Html.DropDownListFor(m=> m.Vehicle,Model.VehicleList)<br />
<input type="submit" name="submit" value="submit" />
}
我做错了什么。我在这方面花了很多时间,并检查了各种SO问题,但无法解决此问题。您的车辆列表在哪里初始化?
看起来并没有调用DropDownListModel,即使调用了,它设置的items2是什么
请尝试将此设置为。车辆列表改为在其中。正在初始化的车辆列表在哪里?
看起来并没有调用DropDownListModel,即使调用了,它设置的items2是什么
请尝试将此设置为。请改为将VehicleList设置为其中。同意Max的说法,VehicleList未初始化。即使将其设置为列表,它仍然不知道值是什么属性,数据是什么。尝试按以下方式更改您的模型:
public class DropDownListModel
{
public DropDownListModel()
{
List<SelectListItem> items = new List<SelectListItem>();
items.Add( new SelectListItem() { Text = "one", Value = "one" } );
items.Add( new SelectListItem() { Text = "two", Value = "two" } );
VehicleList = new SelectList( items, "Value", "Text" );
}
public string Vehicle { get; set; }
public SelectList VehicleList { get; set; }
}
同意Max的意见,车辆列表未初始化。即使将其设置为列表,它仍然不知道值是什么属性,数据是什么。尝试按以下方式更改您的模型:
public class DropDownListModel
{
public DropDownListModel()
{
List<SelectListItem> items = new List<SelectListItem>();
items.Add( new SelectListItem() { Text = "one", Value = "one" } );
items.Add( new SelectListItem() { Text = "two", Value = "two" } );
VehicleList = new SelectList( items, "Value", "Text" );
}
public string Vehicle { get; set; }
public SelectList VehicleList { get; set; }
}
您可能需要编辑代码,以便更清楚地了解您正在执行的操作。。。但很明显:代码完全按照预期工作,但实际上您使用的是错误的 SelectList并不意味着要使用现有SelectListItems的列表创建。您应该为它提供一个您自己的项目集合,指定这些项目上的属性对于将生成的相应HTML元素的值和名称意味着什么。这段代码之所以有效,是因为您看到了正在创建的实际SelectListItems。你可以简单地把它们放在一个列表或其他IEnumerable中,它也会起作用。但不要将这两种方法结合起来 下面是一个工作示例,给出了模型类:
public class Vehicle
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Model
{
public int SelectedId { get; set; }
public IEnumerable<Vehicle> Items { get; set; }
}
您可能需要编辑代码,以便更清楚地了解您正在执行的操作。。。但很明显:代码完全按照预期工作,但实际上您使用的是错误的 SelectList并不意味着要使用现有SelectListItems的列表创建。您应该为它提供一个您自己的项目集合,指定这些项目上的属性对于将生成的相应HTML元素的值和名称意味着什么。这段代码之所以有效,是因为您看到了正在创建的实际SelectListItems。你可以简单地把它们放在一个列表或其他IEnumerable中,它也会起作用。但不要将这两种方法结合起来 下面是一个工作示例,给出了模型类:
public class Vehicle
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Model
{
public int SelectedId { get; set; }
public IEnumerable<Vehicle> Items { get; set; }
}
请提供更完整的代码版本。现在我看到一些语法错误。你的代码很不完整。您有没有属性声明的getter和setter。没有指定字符串的代码。是否有原因不重写。ToString方法?抱歉,我添加了缺少的行。它在我的代码中。请提供更完整的代码版本。现在我看到一些语法错误。你的代码很不完整。您有没有属性声明的getter和setter。没有指定字符串的代码。是否有原因不重写。ToString方法?抱歉,我添加了缺少的行。它在我的密码里。