CS1061: 'IEnumerable 'не содержит определения labViewResult и метода расширения labViewResult - PullRequest
0 голосов
/ 26 мая 2020

Я получил эту ошибку, когда щелкнул ссылку с подробностями:

CS1061: 'IEnumerable' не содержит определения для 'labViewResult', и ни один метод расширения 'labViewResult', принимающий первый аргумент типа 'IEnumerable', не может быть найденным (вам не хватает директивы using или ссылки на сборку?)

Это моя модель:

public partial class LAB_RESULTS_CLINIC_VIEW
    {
        public int order_number { get; set; }
        public int Test_Id { get; set; }
        public string Test_Name { get; set; }
        public string Normal { get; set; }
        public Nullable<System.DateTime> Report_Date { get; set; }
        public string Result { get; set; }
        public string Notes { get; set; }
        public string Low_Range { get; set; }
        public string High_Range { get; set; }
        public string Panic { get; set; }
        public string Text_Range { get; set; }
        public string machine_name { get; set; }
        public Nullable<int> Customer_No { get; set; }
        public string Customer_Name { get; set; }
        public Nullable<int> Patient_No { get; set; }
        public string Patient_Name { get; set; }
        public string Clinic_File_No { get; set; }
        public string Category { get; set; }
        public Nullable<int> AGE { get; set; }
        public string SEX { get; set; }
        public string Test_Note { get; set; }
        public string UNIT { get; set; }
        public Nullable<int> DEPTID { get; set; }
        public Nullable<System.DateTime> Collection_Date { get; set; }
        public Nullable<System.DateTime> Receiving_Date { get; set; }
        public string Group_Name { get; set; }
        public Nullable<int> SERIAL { get; set; }
        public int GROUPID { get; set; }
        public Nullable<int> packageid { get; set; }
        public string EXAMINED_BY { get; set; }
        public string APPROVED_BY { get; set; }
        public string UPDATED_BY { get; set; }
        public Nullable<System.DateTime> UPDATED_DATE { get; set; }
        public string Comments { get; set; }
        public string department_name { get; set; }
    }
}

, и я создал класс таблиц orders_tables:

 public class Orders_Tables
    {
        public Lab_Orders LabOrders { get; set; }
        public Lab_orders_Cash LabOrdersCash { get; set; }
        public Lab_Sample_status LabOrderStatus { get; set; }

        public LAB_RESULTS LabResults { get; set; }
        public LabTests labtests { get; set; }
        public LAB_RESULTS_CLINIC_VIEW labViewResult { get; set; }

       public Lab_Hematology_Samples LabSamples { get; set; }

      public Patients patients { get; set; }
    }

Тогда это мой контроллер:

public ActionResult MasterDetails(int id)
        {

            List<LAB_RESULTS_CLINIC_VIEW> Lab_View = db.LAB_RESULTS_CLINIC_VIEW.ToList();

            var OrderResult = from o in Lab_View
                              where o.order_number == id
                              select new Orders_Tables { labViewResult = o };

            return View(OrderResult);

        }

Наконец, это мое мнение:

@model IEnumerable<AljawdahNewSite.Models.Orders_Tables>
@{
    ViewBag.Title = "MasterDetails";
    Layout = "~/Views/Shared/_LayoutPatients.cshtml";
}

<h2>Order Result - نتائج التحاليل </h2>

<div style="margin-left:20px">
    <hr/>
    <dl class="horizontal">
        <dt>@Html.DisplayNameFor(model => model.labViewResult.Patient_Name)</dt>
        <dd>@Html.DisplayFor(model => model.labViewResult.Patient_Name)</dd>
        <dt>@Html.DisplayNameFor(model => model.labViewResult.Patient_No)</dt>
        <dd>@Html.DisplayFor(model => model.labViewResult.Patient_No)</dd>
        <dt>@Html.DisplayNameFor(model => model.labViewResult.SEX)</dt>
        <dd>@Html.DisplayFor(model => model.labViewResult.SEX)</dd>
        <dt>@Html.DisplayNameFor(model => model.labViewResult.AGE)</dt>
        <dd>@Html.DisplayFor(model => model.labViewResult.AGE)</dd>
        <dt>@Html.DisplayNameFor(model => model.labViewResult.order_number)</dt>
        <dd>@Html.DisplayFor(model => model.labViewResult.order_number)</dd>


    </dl>
</div>

<div style="align-content:center">
    <table class="table table-bordered">
        <tr>

            <td> test name    </td>
            <td> result  </td>
            <td> From Range   </td>
            <td> To Range </td>
            <td> Other Range    </td>
            <td> Report Date  </td>


        </tr>

        @foreach (var item in Model)
        {
            <tr>

                <td>@item.labViewResult.Test_Name</td>
                <td>@item.labViewResult.Result</td>
                <td>@item.labViewResult.Low_Range</td>
                <td>@item.labViewResult.High_Range</td>
                <td>@item.labViewResult.Text_Range</td>
                <td>@item.labViewResult.Report_Date</td>


            </tr>
        }
    </table>
</div>

Ошибка появилась в отображении строк

@ Html .DisplayFor (model = > model.labViewResult.Patient_Name)

Как решить эту ошибку, я проверил решения на этом сайте, но не решил.

1 Ответ

0 голосов
/ 26 мая 2020

Вы можете решить эту проблему, используя только FirstOrDefault () или First (), но с помощью First (), возможно, если заказ пуст, вы получите ошибку «Последовательность не содержит элементов», поэтому рекомендуется использовать FirstOrDefault ():

<dt>@Html.DisplayNameFor(model => model.labViewResult.Patient_Name)</dt>
<dd>@Html.DisplayFor(model => model.FirstOrDefault().labViewResult.Patient_Name)</dd>
<dt>@Html.DisplayNameFor(model => model.labViewResult.Patient_No)</dt>
<dd>@Html.DisplayFor(model => model.FirstOrDefault().labViewResult.Patient_No)</dd>
<dt>@Html.DisplayNameFor(model => model.labViewResult.SEX)</dt>
<dd>@Html.DisplayFor(model => model.FirstOrDefault().labViewResult.SEX)</dd>
<dt>@Html.DisplayNameFor(model => model.labViewResult.AGE)</dt>
<dd>@Html.DisplayFor(model => model.FirstOrDefault().labViewResult.AGE)</dd>
<dt>@Html.DisplayNameFor(model => model.labViewResult.order_number)</dt>
<dd>@Html.DisplayFor(model => model.FirstOrDefault().labViewResult.order_number

А что касается вашего вопроса по объединению dt и dd, вы можете применить некоторый стиль к dt и dd, вы можете попробовать следующее:

<dt style="width: 30%;display: inline-block;">@Html.DisplayNameFor(model => model.labViewResult.Patient_Name)
</dt><dd style="width: 40%;display: inline-block;">@Html.DisplayFor(model => model.FirstOrDefault().labViewResult.Patient_Name)</dd>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...