在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