繁体   English   中英

ASP.NET MVC中的局部视图

[英]partial views in ASP.NET MVC

如何创建由三个部分视图页面组成的视图页面? 我正在使用ASP.NET MVC

    //
    // GET: /Partial/

    public ActionResult View1()
    {
        var upit = from i in proba.name
                   select i;
        return PartialView("upit",proba.name);
    }

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<h2>Index</h2>
<div><%Html.RenderPartial("View1",proba.name); %></div>
</asp:Content>

为什么此代码返回错误:对象引用未设置为对象的实例。

我认为您想使用RenderAction,而不是RenderPartial。 View1是一个动作,而不是一个视图。 它返回局部视图upit 请注意,这需要MVC2(或MVC1 +期货)。 除非您也打算从AJAX调用它,否则您可能还想用ChildActionOnlyAttribute装饰该动作。

[ChildActionOnly]
public ActionResult View1()
{
    var upit = from i in proba.name
               select i;
    return PartialView("upit",proba.name);
}


asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

<h2>Index</h2>
<div><%= Html.Action("View1"); %></div>
</asp:Content>

出现特定错误的原因是,视图中没有定义proba变量,也没有必要定义它。 在您的情况下,该操作确定要传递给部分视图的模型,因此不需要传递任何数据。 呈现动作时,无论如何您只能通过查询参数传递它。

在视图页面内部,您想使用RenderPartial方法。

假设我有3个局部视图,分别称为“ View1”,“ View2”和“ View3”。 如果要渲染所有这三个视图以构成视图的内容,则可以执行以下操作:

<div id="section1">
<% Html.RenderPartial("View1", Model.Table1) %>
</div>
<div id="section2">
<% Html.RenderPartial("View2", Model.Table2) %>
</div>
<div id="section3">
<% Html.RenderPartial("View3", Model.Table3) %>
</div>

我假设您将拥有一个从您的视图派生的MasterPage,以便处理其他必要的标记。 上面的Content只是放在派生视图的“ Content部分中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM