Member 10351910 Ответов: 2

Как включить модель в новое диалоговое окно, созданное в C#


Хотелось бы получить некоторую помощь в этом отношении, так как нет реальной четкой помощи в том, что касается включения существующей модели в диалоговые представления.

Я новичок в C# и Razor. Мы будем признательны за любую помощь, если она будет конструктивной и полезной.

Просто пытаюсь вытащить данные моей модели в представление, чтобы сгенерировать таблицу данных в списке элементов.



```
Дилерская Модель
```
namespace BidWheels.Data
{
    public class Dealers
    {
        public int ID { get; set; }
        public string DealershipName { get; set; }
        public string DealershipAddress { get; set; }
        public int DealershipTownID { get; set; }
        public string DealershipTown { get; set; }
        public string ContactName { get; set; }
        public string ContactSurname { get; set; }
        public string ContactNumber { get; set; }
        public string ContactNumber2 { get; set; }
        public string ContactEmailAddress { get; set; }
        public string AspNetUserId { get; set; }
        public string Email { get; set; }
    }
}


---

```
Диалоговое Окно Просмотр Страницы Razor
```

<pre>@inject IJSRuntime JSRuntime;
@using BidWheels.Shared.Controls;
@using Microsoft.AspNetCore.Identity;
@using BidWheels.CustomProviders;
@using BidWheels.Data;
@using System.ComponentModel.DataAnnotations;
@using System.Data;
@using System.Collections.Generic;
@using System;  


...
<thead>
                   <tr>
                       <th>Dealer</th>
                       <th>Name</th>
                       <th>Surname</th>
                       <th>Email</th>
                       <th>Approval</th>
                   </tr>
               </thead>
               <tbody>
                   <tr>
                       @{
                           foreach(var item in Data.Dealers)
                           {

                           }
                        }
                   </tr>
               </tbody>

...

Что я уже пробовал:

Ну, наверное, гугл...
Методом проб и ошибок тоже....

2 Ответов

Рейтинг:
2

MadMyche

Хороший способ получить фору в этом вопросе-просто щелкнуть правой кнопкой мыши на коллекции. ActionResult метод и выберите Создать Новый Вид опция, которая обычно дает вам HTML со всей необходимой разметкой @Razor.

Вы не предоставили код от контроллера, поэтому нет никакого способа точно сказать, что у вас происходит - как правило, вы возвращаете модель или коллекцию типа Model.

Свой нынешний вид выполняется для...каждая петля пересекает то, что можно только предположить как коллекцию дилеров. Затем пункт будет просто один экземпляр дилера, и свойства должны быть легко доступны. Однако все это потерпит неудачу, если код, которым вы не поделились, не делает того, что предполагается

<tbody>
  <tr>
    @{
      foreach(var item in Data.Dealers) {
        <td>@item.DealershipName</td>
        <!-- other properties here -->
      }
    }
  </tr>
</tbody


Рейтинг:
0

musefan

Что вы подразумеваете под "диалоговыми представлениями"? Я не признаю это известным техническим термином. Вы просто имеете в виду обычный "вид"?

Если это так, то вы указываете модель, которую хотите использовать в представлении следующим образом (обычно в качестве первой строки в файле cshtml):

@model BidWheels.Data.Dealers


Это предоставит вам экземпляр класса дилеров, но, похоже, вам нужен список. Таким образом, вы, вероятно, хотите создать новый класс модели представления со списком дилеров:

public class DealersViewModel
{
    public List<Dealers> Dealers { get; set; };
}


Тогда на ваш взгляд:

@model BidWheels.Data.DealersViewModel

...

@{
    foreach(var item in Model.Dealers)
    {
        <span>@item.DealershipName</span>
    }
}


Вам также необходимо передать экземпляр модели в представление в вашем контроллере:

public ActionResult MyDealers()
{
    var model = new DealersViewModel();
    model.Dealers = new List<Dealers>(); // Populate your list here.
    return View(model);
}