我正在尝试输出一组带有特定主题标签的推文。
我在控制器中有以下代码:
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中的结果。 但我发现很难在视图中输出这些结果。有人可以帮忙吗?
答案 0 :(得分:0)
你的问题有点模糊,但我想我理解你的问题。
您需要通过操作将数据传递到视图中。
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>
}
修改强>
如果您想在页面中放置多个内容,则必须使用部分视图。
您需要一个包含所有其他部分视图的视图。要做到这一点,只需为您的父视图定义一个Twitter信息的动作。
public ActionResult AllInfo() {
return View();
}
然后你的剃刀:
//AllInfo.cshtml
@Html.Action("Test", "YourController")
在AllInfo.cshtml中,我们在“YourController”中调用“Test”操作。我们将更改“Test”以返回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>
}
您可以在AllInfo.cshtml页面中多次调用@ Html.Action()并添加所需的所有PartialView。