IEnumerable <Twitter Status> Просмотр вывода MVC 5 - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь вывести набор твитов с определенным хэштегом.

У меня есть следующий код в контроллере:

public ActionResult Test() {

        var service = new TwitterService("xxx", "xxx");
        service.AuthenticateWith("xxx", "xxx");

        var options = new SearchOptions { Q = "#test" };

        TwitterSearchResult tweets = service.Search(options);
        IEnumerable<TwitterStatus> status = tweets.Statuses;
        ViewBag.Tweets = status;


        //var tweets = service.Search(options);

        return View();
    }

Я хочу вывести результаты, которые находятся в IEnumerable в представлении. Но мне трудно выводить эти результаты в виде. Может кто-нибудь помочь, пожалуйста?

1 Ответ

0 голосов
/ 02 мая 2018

Ваш вопрос немного расплывчат, но я думаю, что понимаю вашу проблему.

Вы хотите передать данные в ваше представление из ваших действий.

public ActionResult Test() {

    var service = new TwitterService("xxx", "xxx");
    service.AuthenticateWith("xxx", "xxx");

    var options = new SearchOptions { Q = "#test" };

    TwitterSearchResult tweets = service.Search(options);
    IEnumerable<TwitterStatus> status = tweets.Statuses;


    //var tweets = service.Search(options);

    return View(status);
}

Обратите внимание, я передаю объект статуса в представление.

Теперь, на ваш взгляд, вы можете просто связать этот объект.

@model IEnumerable<TwitterStatus>

@foreach(var status in Model){
    <div>
        @status.Id @*Id is an exmaple property. Use the actual properties inside "TwitterStatus"*@
    </div>
}

Edit:

Если вы хотите иметь несколько вещей на своей странице, вам придется использовать частичные представления.

Вам понадобится представление, которое будет охватывать все ваши другие частичные представления. Для этого просто определите действие для вашей информации в Твиттере, которое будет вашим родительским представлением.

public ActionResult AllInfo() {
    return View();
}

Тогда ваша бритва:

//AllInfo.cshtml
@Html.Action("Test", "YourController")

В AllInfo.cshtml мы вызываем действие «Тест» внутри «YourController». Мы изменим «Тест», чтобы он возвращал PartialView вместо View.

public ActionResult Test() {

    var service = new TwitterService("xxx", "xxx");
    service.AuthenticateWith("xxx", "xxx");

    var options = new SearchOptions { Q = "#test" };

    TwitterSearchResult tweets = service.Search(options);
    IEnumerable<TwitterStatus> status = tweets.Statuses;

    return PartialView(status);
}

Бритва остается неизменной для вашего частичного просмотра:

//Test.cshtml
@model IEnumerable<TwitterStatus>

@foreach(var status in Model){
    <div>
        @Model.Id @*Id is an exmaple property. Use the actual properties inside "TwitterStatus"
    </div>
}

Вы можете вызывать @ Html.Action () столько раз, сколько хотите на своей странице AllInfo.cshtml, и добавлять все необходимые PartialViews.

...