1

我为自己制作了一个用于消费提要的小型用户控件,所述用户控件的代码如下所示

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<SyndicationFeed >" %>

<%foreach (var rss in ViewData.Model.Items)
  {
      Response.Write("<div id={0}><a href={1} target=\"_blank\" /> <strong>{2}</strong></div>", 
          rss.Links[0].Uri.OriginalString, rss.Title.Text, rss.Title.Text);
      Response.Write("<div>" + rss.Summary.Text.Truncate(100) + "</div>")
  }%>

RssController 的代码如下所示

public virtual ActionResult Index()
{
    string feedUrl = @"http://wdfw.wa.gov/news/newsrss.php";

    using (XmlReader reader = XmlReader.Create(feedUrl))
    {
        SyndicationFeed rss = SyndicationFeed.Load(reader);

        return View(rss);
    }            
}

我在 Site.Master 中这样称呼它

<%Html.RenderPartial("Index", Model);%>

我也试过

<%Html.RenderPartial("Index", ViewData.Model);%>

所有导致此错误:

找到了具有相同 ID 'ctl00' 的多个控件。Trace 要求控件具有唯一的 ID。

有人可以帮我弄清楚我要去哪里错了:)

4

1 回答 1

0

您可以尝试使用 Html.RenderAction("Index","Rss") 代替 Html.RederPartial 吗?当 ViewEngine 调用 Html.RenderAction 时,您的 Index 操作中的所有代码都会被执行,并且带有 rss 数据的模型会转到 Index 视图以生成标记。以及为什么要使用 Response.Write,因为您可以放置​​ html 标记,并且此标记将插入到您调用 Html.RenderAction 的位置。希望对您有所帮助,如果没有,对不起,至少我已经尝试过))

最好的问候,迪玛。

于 2011-04-17T18:32:59.607 回答