Передача проанализированного списка XML из контроллера в представление в ASP.NET MVC - PullRequest
4 голосов
/ 05 января 2009

Я пытаюсь передать список XML в представление, но у меня возникают проблемы, когда я получаю представление.

Мой контроллер:

 public ActionResult Search(int isbdn)
    {
        ViewData["ISBN"] = isbdn;
        string pathToXml= "http://isbndb.com/api/books.xml?access_key=DWD3TC34&index1=isbn&value1=";
        pathToXml += isbdn;
        var doc = XDocument.Load(pathToXml);
        IEnumerable<XElement> items = from m in doc.Elements()
                    select m;

Как бы выглядел мой взгляд? Нужно ли включать какой-то тип контроллера данных XML?

Ответы [ 3 ]

3 голосов
/ 05 января 2009

Я не знаю, намеренно ли вы обрезали свой код на полпути через метод. Но вы должны быть в состоянии сделать следующее, чтобы получить ваши элементы из действия контроллера в представление:

ViewData["XmlItems"] = items;

тогда по вашему мнению вы звоните

<% foreach(XElement e in ViewData["XmlItems"] as IEnumerable<XElement>) { %>
    <!-- do work here -->
<% } %>
3 голосов
/ 05 января 2009

сначала .. вы должны вернуть данные в модальное представление ...

public ActionResult Search(int isbdn)
    {
        ViewData["ISBN"] = isbdn;
        string pathToXml= "http://isbndb.com/api/books.xml?access_key=DWD3TC34&index1=isbn&value1=";
        pathToXml += isbdn;
        var doc = XDocument.Load(pathToXml);
        IEnumerable<XElement> items = from m in doc.Elements()
                    select m;
return view(m);
}

в вашем коде вы должны наследовать

ViewPage < IEnumerable<XElement>>

и чем ваш ViewData.Modal будет строго типизирован IEnumerable<XElement>. и вы сможете работать с данными как в контроллере.

0 голосов
/ 05 января 2009

Я предполагаю, что вы пропустили какой-то код, потому что вы не назначаете элементам ViewData ни в одной точке этого кода.

Что происходит, когда вы пытаетесь получить доступ к элементам в представлении, можете ли вы добавить код из своего представления, чтобы показать, что вы пытаетесь сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...