Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
SilverWolf
3 / 3 / 0
Регистрация: 04.06.2015
Сообщений: 52
Завершенные тесты: 1
1

Вывести во View значение из навигационного свойства

22.01.2018, 02:50. Просмотров 368. Ответов 2

Проблема такая, хочу вывести страну для производителя, код прикладываю:
Производитель
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
 
namespace DataLayer.Models
{
    public class ManufacturerModel
    {
        [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public Guid Id { get; set; }
        public string Name { get; set; }
        
        [ForeignKey("Country")]
        public Guid CountryGuid { get; set; }
 
        public CountryModel Country { get; set; }
    }
}
Страна
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
 
namespace DataLayer.Models
{
    public class CountryModel
    {
        [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public Guid Id { get; set; }
        public string Name { get; set; }
        public string Path { get; set; }
    }
}
Представление
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
@model IEnumerable<Site.Models.ManufacturerViewModel>
@{
    ViewBag.Title = "ManufacturersView";
    Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
 
<div>
    <div class="MaxWidth">
        <div class="MaxWidth Row ContentHorizontalSpaceBetween">
            @Html.ActionLink("Добавить", "CreateManufacturer", null, new { @class = "ColumnBig-2 ColumnMedium-2 ColumnSmall-2 AButtonColorDarkGray" })
            @using (Html.BeginForm("FindCategoryManufacturer", "Admin", FormMethod.Post, new { @class = "NoPadding ColumnBig-6 ColumnMedium-6 ColumnSmall-6 Row" }))
            {
                <input class="InputTextType-1 LeftRightPadding TopBottomPadding FullWidth" name="FindQuerry" type="text" />
                <button class="AButtonColorDarkGray">Поиск</button>
            }
        </div>
    </div>
    <table class="FullWidth">
        <caption>Пользователи</caption>
        <tr>
            <th>Наименование</th>
            <th>Страна</th>
        </tr>
        @foreach (var item in Model)
        {
            <tr>
                <td>
                    @item.Name
                </td>
                <td>
                    @if (item.Country != null && item.Country.Name != null)
                    {
                        @item.Country.Name
                    }
                </td>
                <td class="Row">
                    @Html.ActionLink("Подробнее", "AboutManufacturer", new { item.Id }, new { @class = "AButtonColorDarkGray FullWidth" })
                    @Html.ActionLink("Править", "EditManufacturer", new { item.Id }, new { @class = "AButtonColorDarkGray FullWidth" })
                    @Html.ActionLink("Удалить", "DeleteManufacturer", new { item }, new { @class = "AButtonColorDarkGray FullWidth" })
                </td>
            </tr>
        }
    </table>
    <style>
        table {
            font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
            border-collapse: collapse;
            color: #686461;
        }
 
        caption {
            padding: 10px;
            color: white;
            background: #8FD4C1;
            font-size: 18px;
            text-align: left;
            font-weight: bold;
        }
 
        th {
            border-bottom: 3px solid #B9B29F;
            padding: 10px;
            text-align: left;
        }
 
        td {
            padding: 10px;
        }
 
        tr:nth-child(odd) {
            background: white;
        }
 
        tr:nth-child(even) {
            background: #E8E6D1;
        }
    </style>
</div>
Проблема в том, что в модели передаваемой в представление есть CountryGuid, но нету Country.
И получается что не выводится картинка... (
Что делать? Трехуровневая архитектура. Маппером пользуюсь.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2018, 02:50
Ответы с готовыми решениями:

Как передать в модель значение навигационного свойства?
Привет! Вот такая модель Это фразы и варианты их использования. Класс, который...

EF и обновление навигационного свойства
Есть 2 таблицы в БД: Автор и Книги. Я в приложении на WPF с подходом DB-First отображаю информацию...

Найти повторяющееся значение и вывести имя свойства
Имеется public class Part { public string Designation {get; set;} public string...

Свойства View
Добрый день! Можно обнаружить, что у представления имеются свойства с определенным названием,...

Свойства Tree View
Подскажите пожалуйста как обращаться со свойством Line Image Folder и для чего оно нужно. Так же...

2
Usaga
Эксперт .NET
5710 / 3946 / 702
Регистрация: 21.01.2016
Сообщений: 15,513
Завершенные тесты: 2
22.01.2018, 06:25 2
Цитата Сообщение от SilverWolf Посмотреть сообщение
Проблема в том, что в модели передаваемой в представление есть CountryGuid, но нету Country.
И куда оно могло деться?) Потеряться по пути, что ли?
0
cunamy
7 / 7 / 1
Регистрация: 26.04.2013
Сообщений: 34
22.01.2018, 07:37 3
Цитата Сообщение от Usaga Посмотреть сообщение
И куда оно могло деться?) Потеряться по пути, что ли?


Проверьте что Country заполнен перед передачей во View, Action контроллера покажите
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2018, 07:37

Скопировать свойства view
Здравствуйте, у меня есть view tvName = (TextView) convertView.findViewById(R.id.tvName); Мне...

Как сделать проверку на наличие свойства и только потом вывести значение ?
Здравствуйте! На странице разместил bitrix:news.line подключил несколько инфоблоков, подключены как...

Вывести значение свойства элемента инфоблока в шаблоне формы обратной связи
Всем привет, я со своими любимыми воротами... Есть: комплексный компонент bitrix:news. В инфоблоке...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru