Всем доброго времени суток.
Я пытаюсь генерировать HTML код на странице Razor при помощи функции C#. Дело в том что мне нужно генерировать таблицу из базы данных. Сейчас я делаю это так:
<div class="table-responsive">
<table id="coursesDT" runat="server" class="table table-striped table-hover">
<thead>
<tr>
@foreach (WA2.code.tables.TableHandler.Column i in Model.coursesTable.columns) {
<th>
@i.nameUI;
</th>
}
</tr>
</thead>
<tbody>
@foreach (System.Data.DataRow i in Model.coursesTable.table.Rows) {
<tr>
@foreach (WA2.code.tables.TableHandler.Column j in Model.coursesTable.columns) {
<th>@i[j.nameDB]</th>
}
</tr>
}
</tbody>
</table>
</div>
Что, конечно, даёт желаемый результат, но я хочу сделать это иначе. А именно писать вместо этого нечто вроде
@Model.sampleTable.generateHtml();
И в зависимости от объекта класса table всё само должно подставиться. Я пробовал реализовать это так:
public IHtmlContent generateHtml() {
string testHtml =
@"<div class=""table - responsive"">
< table id = ""coursesDT"" runat = ""server"" class=""table table-striped table-hover"">
<thead>
<tr>
@foreach(WA2.code.tables.TableHandler.Column i in Model.coursesTable.columns)
{
< th >
@i.nameUI;
</ th >
}
</tr>
</thead>
<tbody>
@foreach(System.Data.DataRow i in Model.coursesTable.table.Rows)
{
< tr >
@foreach(WA2.code.tables.TableHandler.Column j in Model.coursesTable.columns) {
< th > @i[j.nameDB] </ th >
}
</ tr >
}
</tbody>
</table>
</div>";
HtmlContentBuilder htmlBuilder = new HtmlContentBuilder();
htmlBuilder.AppendHtml(testHtml);
return htmlBuilder;
}
Но это не работает, выдавая просто текст в конечный результат: Сверху - как должно быть, снизу, там где кончается таблица - то что вышло.
Сейчас мне видится простейшим выходом исключить все конструкции foreach и строить HTML кастомно. Но я не уверен что проблема в них. Может проблема в том что мне приходилось дублировать кавычки? А может в том что razor в HtmlContentBuilder нельзя использовать.
В общем подскажите мне пожалуйста как лучше всего выйти из ситуации.
есть функция которая возвращает записи из базы IEnumerable<Persons>
Если бот общается с пользователем в лс, то при сообщении /commands , бот все норм создает такую клавиатуру, а если в групповом, то выдает ошибку...
Мобильное приложение через IdentityServer подключается к микросервису и затем через API(s) к базе данныхВсе работает