Почему привязка навигационного свойства к раскрывающемуся списку не работает? - PullRequest
0 голосов
/ 16 апреля 2019

Я заполняю DropDownListFor бритвой MVC. Я пытаюсь заполнить его из свойства Navigational, но оно не работает.

Ошибка:

Не удалось найти тип или имя пространства имен 'модель' (отсутствует директива using или ссылка на сборку?) **

  <div class="form-group">
            @Html.LabelFor(model => model.InspectionReport.InspectionPhase, htmlAttributes: new { @class = "control-label col-md-2" })
            <div class="col-md-3">
                @Html.DropDownListFor(model => model.InspectionReport.InitialsID, (IEnumerable<model.InspectionReport.Initials>) Model.InspectionReport.Initials,
                   "-Select-",
                 new { @class = "form-control" })
                @Html.ValidationMessageFor(model => model.InspectionReport.InspectionPhase, "", new { @class = "text-danger" })
            </div>
        </div>

InspectionReport.cs

namespace VAILCertificates.DAL.Entities
{
    public class InspectionReport
    {
        //General Details
        public int InspectionReportID { get; set; }
        public short? InitialsID { get; set; }
        public virtual Initials Initials { get; set; }


    }
}

Initials.cs

public class Initials
{
    public short? InitialsID { get; set; }
    public string Code { get; set; }
}

1 Ответ

0 голосов
/ 16 апреля 2019
(IEnumerable<model.InspectionReport.Initials>) Model.InspectionReport.Initials

К сожалению, вы не можете вывести общий тип параметра, подобный этому, - вам нужно указать фиксированный тип или интерфейс вместо использования model.something. При использовании обобщений ваш тип должен быть разрешен компилятором во время компиляции, поэтому вы не можете использовать там ни динамический код, ни свойство объекта, ни даже typeof(something).

Более подробную информацию о спецификации типа для дженериков можно найти в MSDN .

В вашем конкретном случае вы захотите заменить этот фрагмент кода на что-то вроде

(IEnumerable<Necessary.Namespaces.Initials>) Model.InspectionReport.Initials

, заменив Necessary.Namespaces тем пространством имен, в котором живет ваш класс Initials.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...