C# 如何在Html.DropDownListFor上选择显示的文本
如何选择某个类型的Html.DropDownListFor中显示的属性 例如,我有下面的类,我想从中选择值C# 如何在Html.DropDownListFor上选择显示的文本,c#,asp.net-mvc,asp.net-mvc-5,html.dropdownlistfor,C#,Asp.net Mvc,Asp.net Mvc 5,Html.dropdownlistfor,如何选择某个类型的Html.DropDownListFor中显示的属性 例如,我有下面的类,我想从中选择值 public partial class Artysta { public Artysci() { this.SpektaklArtysta = new HashSet<SpektaklArtysta>(); } [Key] public int ArtystaID { get;
public partial class Artysta
{
public Artysci()
{
this.SpektaklArtysta = new HashSet<SpektaklArtysta>();
}
[Key]
public int ArtystaID { get; set; }
public string Imie { get; set; }
public string Nazwisko { get; set; }
}
一个好的选择是使用
DropDownList
,如下所示
@Html.DropDownList("DropDownId", Model.Select(item => new SelectListItem
{
Value = item.ArtystaID.ToString(),
Text = item.Nazwisko.ToString(),
Selected = "select" == item.ArtystaID.ToString() ? true : false
}))
希望能满足您的要求 一个好的选择是使用
DropDownList
,如下所示
@Html.DropDownList("DropDownId", Model.Select(item => new SelectListItem
{
Value = item.ArtystaID.ToString(),
Text = item.Nazwisko.ToString(),
Selected = "select" == item.ArtystaID.ToString() ? true : false
}))
希望能满足您的要求 好的,您需要向下拉列表传递可能值的列表,例如:
@Html.DropDownListFor(model => model.ArtystaID, new SelectList(Model.Artysci, "ArtystaID", "Nazwisko", 0))
它显示:DropDownList设置models ArtystaID字段,该字段由models Artysci字段填充,该字段应包含在ArtystaID
字段下具有键的项,并在Nazwisko
字段下显示文本(因此,您的Artysta类)
现在,您的类没有Artysci字段,因此您必须创建它:
public partial class Artysta
{
public Artysci()
{
this.SpektaklArtysta = new HashSet<SpektaklArtysta>();
}
[Key]
public int ArtystaID { get; set; }
public string Imie { get; set; }
public string Nazwisko { get; set; }
public List<Artysta> Artysci = ArtistRepository.GetAllArtists();
}
哦,还有一个个人提示:我知道这可能不是你的选择,除非你是一名首席/唯一的开发人员,但请为你的类、变量等使用英文名称,如果将来有其他人必须编写你的代码,而且他们可能不会说波兰语,这会容易得多;) 好的,您需要向下拉列表传递可能值的列表,例如:
@Html.DropDownListFor(model => model.ArtystaID, new SelectList(Model.Artysci, "ArtystaID", "Nazwisko", 0))
它显示:DropDownList设置models ArtystaID字段,该字段由models Artysci字段填充,该字段应包含在ArtystaID
字段下具有键的项,并在Nazwisko
字段下显示文本(因此,您的Artysta类)
现在,您的类没有Artysci字段,因此您必须创建它:
public partial class Artysta
{
public Artysci()
{
this.SpektaklArtysta = new HashSet<SpektaklArtysta>();
}
[Key]
public int ArtystaID { get; set; }
public string Imie { get; set; }
public string Nazwisko { get; set; }
public List<Artysta> Artysci = ArtistRepository.GetAllArtists();
}
哦,还有一个个人提示:我知道这可能不是你的选择,除非你是一名首席/唯一的开发人员,但请为你的类、变量等使用英文名称,如果将来有其他人必须编写你的代码,而且他们可能不会说波兰语,这会容易得多;) 显示
Imie
是什么意思?您发布的任何代码都不会显示与属性Imie
(或用于Nazwisko
)相关的任何内容。不清楚您试图做什么(在任何情况下,您的@Html.DropDownList()
也不起作用)。显示Imie
是什么意思-您发布的任何代码都不会显示任何与属性Imie
(或Nazwisko
)相关的内容。不清楚您试图做什么(在任何情况下,您的@Html.DropDownList()
也不起作用)。我不知道,但如果模型有多个项,我猜它是相关的。如果它有多个项,您的代码无论如何都不会起作用。为什么你建议为DropDownList
发布代码,然后为DropDownList
发布代码?您还没有将dropdownlist绑定到模型属性,因此它不会被绑定!我已经更新了我的答案,它不是DropDownListFor
,而是DropDownList
。Model
是IEnumerable
,它包含用于创建IEnumerable
的项目,这是下拉列表的数据源查看OP的视图代码-模型是@Model Teatr.Models.SpektaklArtysta
,而不是IEnumerable
!(但别担心——OP的代码毫无意义)我不知道是谁投了你的反对票,但在这种情况下,你的答案部分是正确的。我还是投了票。我不知道,但是如果模型有多个项目,我猜它是相关的。如果它有多个项目,你的代码无论如何都不会工作。为什么你建议为DropDownList
发布代码,然后为DropDownList
发布代码?您还没有将dropdownlist绑定到模型属性,因此它不会被绑定!我已经更新了我的答案,它不是DropDownListFor
,而是DropDownList
。Model
是IEnumerable
,它包含用于创建IEnumerable
的项目,这是下拉列表的数据源查看OP的视图代码-模型是@Model Teatr.Models.SpektaklArtysta
,而不是IEnumerable
!(但别担心——OP的代码毫无意义)我不知道是谁投了你的反对票,但在这种情况下,你的答案部分是正确的。我还是投了票。我已经用模型类更新了问题帖子,这个视图是为模型类生成的。当前代码工作正常(显示所有可能的值),但有时显示的文本是Imie,有时是Nazwisko。我马上检查一下你们建议的方法。关于波兰人的名字,我正在上一门大学课程,在那里,医生需要波兰人的名字,磨我的齿轮;]我所有的代码都是英文的,但这次我别无选择。简单流畅!工作起来很有魅力。遗憾的是,我不能改变自动生成的代码中显示的值,但哪些值会进入下拉列表?在new SelectList()
中,您可以对数据源执行Linq查询:Model.Artysci.Where(artysta=>artysta.Nazwisko.EndsWith(“ski”)
或任何您想要的筛选,或者执行一些修改,例如:Model.Artysci.Select(artysta=>new artysta{artysta=artysta.ArtystaID,Imie=artysta.Imie,nazzwisko=“Pan”+artysta.Nazwisko})
我已经用生成此视图的模型类更新了问题帖子。当前代码运行良好(显示所有可能的值)但有时显示的文本是Imie,有时是Nazwisko。我会检查一下你们建议的方法。关于波兰名字,我正在上大学课程,医生要求波兰名字,磨磨我的齿轮;]我所有的代码库都是英文的,但这次我别无选择。简单而流畅!很有魅力。很遗憾我无法更改为自动生成的代码显示的值,但也可以更改。在下拉列表中显示哪些值?在new SelectList()
中,您可以对数据源执行Linq查询:Model