Razor MVC получает один предмет из модели - PullRequest
0 голосов
/ 20 ноября 2018

Я очень плохо знаком с Razor / MVC, поэтому у меня очень простой вопрос.

Я знаю, что могу просматривать модель в моем частичном представлении как таковом

@foreach (var e in Model.Modelname)
{
    e.ModelProperty
}

То, что я хотел бы сделать, это вместо того, чтобы перебирать все элементы в модели, как указано выше, просто получить один (или первый, если их более одного) из модели.

Я понимаю, что могу написать что-то вроде этого:

@foreach (var e in Model.Modelname)
{
    e.ModelProp.First()
}

Однако глупо писать цикл, чтобы получить 1 элемент из модели ... и прежде чем кто-нибудь скажет, почему бы вам просто не написать

      e.ModelProp 

Потому что довольно часто мне нужно получить свойства в модели, и я получу совершенно другой набор свойств (и, как правило, гораздо более полный) между написанием

 Model.ItemProp    

 or

  foreach (var e in Model.Modelname)
  {
      e.ItemProp
  }

Итак, я думаю, что на самом деле я спрашиваю, как мне получить эти индивидуальные свойства, которые я могу получить с помощью переменной e в Model.Modelname без необходимости циклически проходить по модели?

Я пробовал что-то вроде

var e = Model.Modelname;

e.ModelProp

но очевидно, что это не работает

спасибо!

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Если вы хотите получить ВСЕ первые элементы ModelProp, тогда

Model.Modelname.Select(x=> x.ModelProp.FirstOrDefault())

Если вы хотите получить первый ModelProp первого ModelName:

Model.Modelname.FirstOrDefault(x=> x.ModelProp.FirstOrDefault())
0 голосов
/ 20 ноября 2018

Похоже, что вы пытаетесь получить первый элемент Modelname, а затем первое свойство этого первого элемента из Modelname:

Model.Modelname.First().ModelProp.First()

Если вы просто хотите получить первый объект в Modelname, а затем определенное свойство:

Model.Modelname.First().ModelProp

Небольшое дополнение.Список может быть пустым, поэтому добавьте пустые проверки:

Model.Modelname.FirstOrDefault()?.ModelProp ?? ""
...