在Web窗體中這似乎更容易;我有一個用戶控件,在代碼隱藏的邏輯,我可以把它放在一個頁面上。在ASP.NET MVC中顯示用戶控件
但顯然代碼屁股是一個沒有沒有在MVC中,並且邏輯在控制器。我對用戶控件的邏輯如何「連線」有點困惑。
我想顯示RSS提要用戶控件。所以我有一個頁面:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Home Page
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<p>
<% Html.RenderPartial("RssFeed"); %>
</p>
</asp:Content>
我有我的用戶控件:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewPage<SyndicationFeed>" %>
<%@ Import Namespace="System.ServiceModel.Syndication" %>
<p>
<%: ViewData.Model.Title.Text %>
</p>
<div>
<% foreach (var item in ViewData.Model.Items)
{
string url = item.Links[0].Uri.OriginalString;
%>
<p><a href='<%= url %>'><b><%= item.Title.Text %></b></a></p>
<% } %>
</div>
而且我有這樣的代碼,我需要運行得到RSS數據:
using (XmlReader reader = XmlReader.Create(ConfigurationManager.AppSettings["RssFeed"]))
{
SyndicationFeed rssData = SyndicationFeed.Load(reader);
return View(rssData);
}
但它去哪裏?在包含該控件的頁面的控制器中?
所以我得到一個編譯錯誤:無法將類型'ASP.views_shared_rssfeed_ascx'轉換爲'System.Web.Mvc.ViewUserControl'。這裏有什麼故事? – Steven 2010-09-18 18:36:27
沒關係,在這裏找到答案:http://stackoverflow.com/questions/1028047/asp-net-mvc-custom-type-list-in-partial-view – Steven 2010-09-18 18:39:45