powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Почему вставляется Html.DisplayForModel в WebGrid
2 сообщений из 2, страница 1 из 1
Почему вставляется Html.DisplayForModel в WebGrid
    #39550847
Solomka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему вставляется Html.DisplayForModel() в WebGrid


Есть класс:

Код: c#
1.
2.
3.
4.
5.
6.
7.
public class SomeInfoModelInTable
    {
        public int SomeInfoID { get; set; }
        public string Name { get; set; }
        public string SecondName { get; set; }
        public string NameLow { get { return Name.ToLower(); } }
    }



Есть переопределённый шаблон для отображения SomeInfoModelInTable в папке Shared/DisplayTemplates:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
@model WEB.Models.SomeInfoModelInTable
<tr>
    <td></td>
    <td>
        @Model.Name
    </td>
    <td>
        @Model.SecondName
    </td>
</tr>




Есть частичное представление:
Код: html
1.
2.
3.
4.
5.
@model WEB.Models.SomeInfoModelInTable
@if (@Model != null)
{  
        @Html.DisplayForModel()    
}


Есть страница, на которой выводиться таблица с помощью DisplayForModel:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<head>
    <meta name="viewport" content="width=device-width" />
    <title>SomeInfoesInGrig</title>
</head>
<body>
 
<hr/>
    <table>
        @Html.DisplayForModel()
    </table>
</body>
</html>



Та же страница, на которой выводится таблица, и модель для отображения показывается через частичное представление:
Код: html
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.
<head>
    <meta name="viewport" content="width=device-width" />
    <title>SomeInfoesInGrig</title>
</head>
<body>
    <p>
      
    </p>
@{
    var grig = new System.Web.Helpers.WebGrid(@Model);
    @grig.GetHtml(
            displayHeader: false,
            columns: grig.Columns(
                new WebGridColumn()
                {
                    ColumnName = "item1",
                    Header = " ",              
                    Format = @<text>@Html.Action("SomeInfoesInGrigOneLine", "Home", new { simit = @item.SomeInfoID })</text>
                }
                ))
}
<hr/>
 
</body>
</html>



Но вот незадача...
Если в напрямую использовать DisplayForModel вместо PartionView, то не работает:
Строчку
Код: html
1.
Format = @<text>@Html.Action("SomeInfoesInGrigOneLine", "Home", new { simit = @item.SomeInfoID })</text>


Заменяем на:
Код: html
1.
Format = @Html.DisplayForModel() 


Возникает ошибка:
авторОшибка компиляции
Описание: Ошибка во время компиляции ресурса, необходимого для обслуживания этого запроса. Просмотрите следующие сведения о данной ошибке и измените соответственно исходный код.
Сообщение об ошибке компилятора: CS0029: Cannot implicitly convert type 'System.Web.Mvc.MvcHtmlString' to 'System.Func<dynamic, object>'

Как использовать шаблон отображения в MvcHelper'e табличном отображении напрямую без частичного отображения?
...
Рейтинг: 0 / 0
Почему вставляется Html.DisplayForModel в WebGrid
    #39551014
Solomka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если поставить строчку
Код: html
1.
Format =@<text>@Html.DisplayForModel()</text>


то он выводит список записей согласно количеству несоклько раз.
То есть если записей 2, то выведет 4 строки.
Если записей 3, то выведет 9 строк
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Почему вставляется Html.DisplayForModel в WebGrid
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]