在我的视图asp.net mvc中未能引用另一个模型

时间:2014-08-22 17:54:17

标签: asp.net asp.net-mvc asp.net-mvc-4

我正在尝试在着陆页中显示Youtube视频。我知道代码有效,因为在另一个视图中它可以工作。

在我的目标网页中,我引用了一个调用我的博客文章的模型,因此我无法在我的目标网页中引用其他模型

我得到的错误说当前模型不包含'GetEnumerator'。如果我添加另一个模型,我会收到一个错误,说视图只能引用一个模型。

这就是我使用“模特”和“视频”在着陆页中显示我的博文和视频的方式。

  public ActionResult landing()
        {
           var model = new Stream.FeedViewModel();
           var videos = WeLove.Net.Models.Stream.YouTubeHelper.GetVideos();


            XmlReaderSettings settings = new XmlReaderSettings();
            settings.XmlResolver = null;
            settings.DtdProcessing = DtdProcessing.Ignore;
            settings.DtdProcessing = DtdProcessing.Parse;

            using (var reader = XmlReader.Create("https://takeonemisu.wordpress.com/feed",settings))
            {
                var feed = SyndicationFeed.Load(reader);
                foreach (var post in feed.Items.Take(3))
                {
                    model.Posts.Add(post);

                }
            }

            return View(model);
        }

我很遗憾,在视图中一次只能运行一个。

请帮忙

1 个答案:

答案 0 :(得分:0)

使用子操作:

<强>控制器

[ChildActionOnly]
public ActionResult VideoList()
{
    var videos = // get videos;
    return PartialView(videos);
}

[ChildActionOnly]确保此操作只能作为子项调用,而不能直接通过浏览器中的URL调用。如果你想在特定的URL上提供它,你总是可以删除这个属性,但是你很可能会将ControllerContext.IsChildAction和/或Request.IsAjaxRequest的布尔值分支为返回{ <1}}或PartialView根据需要。

<强> VideoList.cshtml

View

显然,部分视图HTML可以是您想要的任何内容。我只是将无序列表作为示例

发布视图

@model Namespace.To.VideoModel
<ul>
    @foreach (var video in Model)
    {
        <li><a href="@video.Url">@video.Title</a></li>
    }
</ul>