2011-04-17 89 views
1

我使自己的消耗飼料小用戶控件的代碼,所述用戶控制裝置看起來像這樣Html.RenderPartial及具有相同ID錯誤

<%@ 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);%> 

所有導致這個這個錯誤:

Multiple controls with the same ID 'ctl00' were found. Trace requires that controls have unique IDs.

有人可以幫我找出我要去哪裏錯了,請:)

+0

禁用跟蹤。 – SLaks 2011-04-17 17:28:54

回答

0

你可以嘗試使用Html.RenderAction(」索引「,」Rss「)而不是Html.RederPartial?當ViewEngine調用Html.RenderAction時,您的Index操作中的所有代碼都會執行,並且具有rss數據的Model會轉到Index視圖以生成標記。爲什麼你使用Response.Write,鑑於你可以把HTML標籤,這個標記將被插入你調用Html.RenderAction的地方。希望它會對你有所幫助,如果沒有,對不起,至少我已經試過了))

祝你好運, 迪馬。

+0

昏暗我試過你的選擇,並且我收到此消息編譯器錯誤消息:CS0121:該調用在以下方法或屬性之間不明確:'Microsoft.Web.Mvc.ViewExtensions.RenderAction(System.Web.Mvc.HtmlHelper,string,string )'和'System.Web.Mvc.Html.ChildActionExtensions.RenderAction(System.Web.Mvc.HtmlHelper,string,string)' – PsychoCoder 2011-04-17 19:31:48

+0

@PsychoCoder它是不正確的,因爲我可以從您的評論中看到..爲什麼您標記它作爲答案? – RredCat 2012-12-06 14:09:16