asp.net-mvc – 用于局部视图的ASP.NET MVC 3控制器操作
发布时间:2020-12-16 04:12:59 所属栏目:asp.Net 来源:网络整理
导读:我是MVC的新手,我不明白如何正确使用部分视图.我正在尝试在我的MVC应用程序中显示来自博客站点的RSS源.我正在使用Razor,我有以下结构: Controllers/HomeController.csControllers/RssController.csViews/Home/Index.cshtmlShared/_Layout.cshtmlShared/_Rss
我是MVC的新手,我不明白如何正确使用部分视图.我正在尝试在我的MVC应用程序中显示来自博客站点的RSS源.我正在使用Razor,我有以下结构:
Controllers/HomeController.cs Controllers/RssController.cs Views/Home/Index.cshtml Shared/_Layout.cshtml Shared/_Rss.cshtml HomeController的: namespace MvcApp.Controllers { public class HomeController : Controller { public ActionResult Index() { ViewBag.Message = "Welcome to ASP.NET MVC!"; return View(); } } } RssController: namespace MvcApp.Controllers { public class RSSFeedController : Controller { public ActionResult RssFeed() { string strFeed = "http://foo.wordpress.com/category/foo/feed/"; using (XmlReader reader = XmlReader.Create(strFeed)) { SyndicationFeed rssData = SyndicationFeed.Load(reader); return View(rssData); } } } } _Rss.cshtml: @using System.ServiceModel.Syndication; @using System.Text; @using System.Xml.Linq; <h2>RSSFeed</h2> @foreach (var item in ViewData.Model.Items) { string URL = item.Links[0].Uri.OriginalString; string Title = item.Title.Text; StringBuilder sb = new StringBuilder(); foreach (SyndicationElementExtension extension in item.ElementExtensions) { XElement ele = extension.GetObject<XElement>(); if (ele.Name.LocalName == "encoded" && ele.Name.Namespace.ToString().Contains("content")) { sb.Append(ele.Value + "<br/>"); } } Response.Write(string.Format("<p><a href="{0}"><b>{1}</b></a>",URL,Title)); Response.Write("<br/>" + sb + "</p>"); } _Layout.cshtml: <div id="main"> @RenderBody() </div> <div id="BlogContent"> @Html.Partial("_Rss"); </div> 我的困惑是如何调用控制器动作来获取局部视图? 解决方法
您需要调用PartialView而不是View,以下是修改后的操作的外观:
public ActionResult RssFeed() { string strFeed = "http://foo.wordpress.com/category/foo/feed/"; using (XmlReader reader = XmlReader.Create(strFeed)) { SyndicationFeed rssData = SyndicationFeed.Load(reader); return PartialView(rssData); } } 然后,您需要有一个名为RssFeed的局部视图. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读