Asp.net mvc 正在查找在网页上多次使用同一部分视图的示例

Asp.net mvc 正在查找在网页上多次使用同一部分视图的示例,asp.net-mvc,Asp.net Mvc,使用.NETMVC,我对一个地址有一个局部视图,我需要在同一个页面上实现多次,因为用户可能有不同类型的地址。作为.NETMVC的新手,我想找一个例子来指导我完成所有必要的步骤 下面是一些代码。代码的第一部分是包含部分视图的主页面。我知道这样做是错误的,但我首先尝试了两次(针对两个不同的地址)列出“Html.RenderPartial”行。我这样做只是为了看看它会做什么 <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Share

使用.NETMVC,我对一个地址有一个局部视图,我需要在同一个页面上实现多次,因为用户可能有不同类型的地址。作为.NETMVC的新手,我想找一个例子来指导我完成所有必要的步骤

下面是一些代码。代码的第一部分是包含部分视图的主页面。我知道这样做是错误的,但我首先尝试了两次(针对两个不同的地址)列出“Html.RenderPartial”行。我这样做只是为了看看它会做什么

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<JCIMS_MVC2_EF.DomainModel.Data.Models.DistrictAddressModel>" %>


<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Create District 
</asp:Content>

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

<% Html.RenderPartial("DistrictHeaderPartial", this.ViewData.Model.DistrictHeader); %>   

<% Html.EnableClientValidation(); %>

<% using (Html.BeginForm()) { %>

    <fieldset id="address">
    <legend>Create new Address for <%: Model.DistrictHeader.District_Name %></legend>

        <% Html.RenderPartial("AddressEditPartial", this.Model); %>

    </fieldset>
    <p>
    <input type="submit" value="Save" />
    </p>


<% } %>

<div>
    <%: Html.ActionLink("Return to District Info Page", "Index", "District", new { id = Model.DistrictHeader.District_GUID }, null)%>
</div>

</asp:Content>

创建区域
为创建新地址


这是局部视图:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<JCIMS_MVC2_EF.DomainModel.Data.Models.BaseAddressModel>" %>

<script language="javascript" type="text/javascript">
    $(document).ready(function () {
        $("#AddressViewData_Zip_Code").mask("99999");
    });
</script>

<div class="editor-label">
<%: Html.LabelFor(model => model.AddressViewData.Address_Type_Text) %>    
</div>
<%: Html.DropDownList("AddressViewData.Address_Type_Code")%>
<%: Html.ValidationMessageFor(model => model.AddressViewData.Address_Type_Code) %>
<div class="editor-label">
<%: Html.LabelFor(model => model.AddressViewData.Street_Address)%>
</div>                        
<%: Html.TextBoxFor(model => model.AddressViewData.Street_Address, new { @class = "input-size" })%>
<%: Html.ValidationMessageFor(model => model.AddressViewData.Street_Address) %>
<div class="editor-label">
<%: Html.Label("City") %>
</div>
<%: Html.TextBoxFor(model => model.AddressViewData.City, new { @class = "input-size" })%>
<div class="editor-label">
<%: Html.Label("State") %>
</div>
<%: Html.DropDownList("AddressViewData.State")%>
<div class="editor-label">
<%: Html.LabelFor(model => model.AddressViewData.Zip_Code) %>
</div>
<%: Html.TextBoxFor(model => model.AddressViewData.Zip_Code) %>
<%: Html.ValidationMessageFor(model => model.AddressViewData.Zip_Code) %>
<div class="editor-label">
<%: Html.LabelFor(model => model.AddressViewData.Address_ATTN) %>
</div>
<%: Html.TextBoxFor(model => model.AddressViewData.Address_ATTN, new { @class = "input-size" })%>
<%: Html.ValidationMessageFor(model => model.AddressViewData.Address_ATTN) %>  

$(文档).ready(函数(){
$(“#地址视图数据_邮政编码”).mask(“99999”);
});
model.AddressViewData.Address\u Type\u Text)%>
model.AddressViewData.Address\u Type\u Code)%>
model.AddressViewData.Street\u Address)%>
model.AddressViewData.Street_地址,新的{@class=“input size”})%>
model.AddressViewData.Street\u Address)%>
model.AddressViewData.City,新{@class=“input size”})%>
model.AddressViewData.Zip_Code)%%>
model.AddressViewData.Zip_Code)%%>
model.AddressViewData.Zip_Code)%%>
model.AddressViewData.Address\u ATTN)%>
model.AddressViewData.Address_ATTN,新的{@class=“input size”})%>
model.AddressViewData.Address\u ATTN)%>
有什么问题:

<% Html.RenderPartial("Name", model ) %>
<% Html.RenderPartial("Name", differentModel ) %>

我不完全确定您需要什么。但是如果我理解正确的话,你有一个
List类型的属性可以帮助你

如果问题在于在父视图中显示不同的地址,那么这只是一个简单的
foreach
语句:

<% foreach(Address a in this.Model.Addresses) %>
<% { %>
    <% Html.RenderPartial("Address", a); %>
<% } %>

我可能不清楚您在寻找什么,但基本上您的情况是您有一个用户列表,每个用户都有一个地址列表。因此,您将遍历您的用户列表以及每个用户的地址列表,如下所示(此代码段是嵌入在aspx页面中的c sharp示例:

<% foreach(User lvUser in Model.Users)
{ %>
    <% Html.Encode(lvUser.Username) %>
    <% Html.Encode(lvUser.Email) %>

    <% foreach(Address lvAddress in lvUser.Addresses)
    { %>
       <% Html.RenderPartial("PartialAddress", lvAddress); %> //Where you've set the view data class to Address
    <% } %>


<% } %>

//将视图数据类设置为Address的位置

在您的视图中,您在哪里尝试渲染两个不同的地址?我只能看到一个与主视图模型相关的
RenderPartial
。可能您没有解释清楚,因为我不太理解这里的问题。我尝试添加行:两次。这就是我尝试添加两个不同的addr的方式esses,但这并不正确。