我从数据库中获取内容。如何使用部分视图使用该数据库在页面上显示内容?
数据库表:内容
[Id,Content]这些是2个字段
我想使用部分视图从db获取内容 我如何将id传递给局部视图并在视图页面中显示内容?
答案 0 :(得分:6)
您可以使用Html.RenderAction
:
public class MyController
{
[ChildActionOnly]
public ActionResult Foo(int id)
{
var content = GetContentFromDatabase(id);
return Content(content, MediaTypeNames.Text.Html);
}
}
在您的视图中包含部分:
<%= Html.RenderAction("foo", "mycontroller", new { id = 5 }) %>
备注:RenderAction
是现已发布的ASP.NET MVC 2 RTM的一部分。对于ASP.NET MVC 1,您可以查看包含此扩展方法的Futures程序集。
答案 1 :(得分:0)
在您的视图中,使用Html.RenderPartial
功能。有几种不同的用途:
您可以将模型传递到局部视图:<% Html.RenderPartial("partialName", model); %>
或者您可以传递全新的ViewDataDictionary
:<% Html.RenderPartial("partialName", viewData); %>
有关完整文档,请参阅here。
编辑:(评论回答):
我会将这些数据作为您视图模型的一部分。例如,假设你的模型中有:
List<Person> People;
在您的视图中,您希望遍历其中的每一个,并使用PartialView显示详细信息:
<% foreach( var p in Model.People){ %>
<p> <% Html.RenderPartial("personPartial", p); %> </p>
<%}%>
现在,您的PartialView可能如下所示:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Person>" %>
<%=Model.PersonName%>