У меня есть простой проект, на стартовой странице которого отображается список книг. Как сделать ту же страницу, но с отображением в виде XML?
Метод контроллера:
public IActionResult Index()
{
// stored procedure
var books = _context.Bookstable.FromSqlRaw("SelectAll").ToList();
return View(books);
}
Просмотр
@model IEnumerable;
@{
ViewData["Title"] = "Home Page";
Layout = "~/Views/Shared/_Layout.cshtml";
}
Author
Name
@foreach (var item in Model)
{
@item.Author
@item.Name
}
Мне нужно вернуть сериализованные данные из контроллера в виде XML, представление Razor принимает данные и отображает их.
По этой теме много вопросов, но я не нашел ответа на свой.
Это должно быть что-то вроде этого метода контроллера:
public IActionResult IndexXML()
{
var books = _context.Bookstable.FromSqlRaw("SelectAll").ToList();
// how to convert 'books' to XML?
booksXML =
return View(booksXML, "text/xml");
}
Следует ли мне создать новую таблицу (в SQL Server) с другим типом данных (XML)?
Нужно ли переписывать хранимые процедуры (было бы неплохо сохранить старые, но преобразовать данные после их получения)?
Вероятно, я упускаю что-то еще.
Просмотр
@* @model IEnumerable; need XMLstring *@
{ *@
Context.Response.ContentType = "text/xml";
} *@
{
ViewData["Title"] = "Home Page";
Layout = "~/Views/Shared/_Layout.cshtml";
}
XML
Author
Name
@foreach (@* ??????? *@)
{
@* ??????? *@
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... merablexml