繁体   English   中英

C#MVC 5基于ID显示列表中的模型文本

[英]c# mvc 5 display model text from list based on id

我有一个模型:

public class Model
{
   public string Id { get; set }
   public List<SelectListItem> Items { get; set; }
}

现在我认为:

@foreach (var item in Model)
{
   @Html.DisplayFor(modelItem => item.Items.Where(t=>t.Value ==  item.Id).Select(t=>t.Text))
}

基本上,Items属性将具有以下内容:

Value = 1
Text = "Somethnig"

Value = 2
Text = "Somethnig else"

Value = 3
Text = "Somethnig else in here"

Id属性将保存该项目的Value,可以是1, 2, 3 and so forth

如何在我的视图中显示项目的文本而不是值?

如果要访问“项目”列表,请尝试此操作。

@foreach (SelectListItem item in Model.Items)
{
   @Html.DisplayFor(item.Text)
}

现在,如果var itemModel DatatType的object ,请尝试此操作。

@foreach (var item in Model)
{
   @Html.DisplayFor(modelItem => item.Items.Where(t=>t.Value ==  item.Id)[0].Text)
}

注意:如果列表中没有符合表达式t.Value == item.Id的对象,则索引0 t.Value == item.Id没有对象,因此,将为您提供IndexOutOfRangeException

试试这个:

foreach(var item in Model)
{
value: item.Id
Text: item.Text
}

这是我数据库中的模型

我正在使用.net MVC3

我有两张桌子

CREATE TABLE IF NOT EXISTS `examen_paco`.`consola` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `nombre` VARCHAR(200) NULL,
PRIMARY KEY (`id`))


-- -----------------------------------------------------
-- Table `examen_paco`.`juegos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `examen_paco`.`juegos` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `nombre` VARCHAR(200) NULL,
  `consola_id` INT NOT NULL,
  PRIMARY KEY (`id`),

我进行了查询,向我显示了控制台表的列表。

现在,我想让您单击一个包含属于每个控制台的ID的控制台游戏显示列表。

我在控制器内使用C#。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM