Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 如何从不同的模型/控制器渲染局部视图?_Asp.net Mvc 4_Partial Views - Fatal编程技术网

Asp.net mvc 4 如何从不同的模型/控制器渲染局部视图?

Asp.net mvc 4 如何从不同的模型/控制器渲染局部视图?,asp.net-mvc-4,partial-views,Asp.net Mvc 4,Partial Views,我有以下称为_Categories的局部视图,位于~/Views/Category/_Categories中: @model IEnumerable<MyBlogSite.Models.BlogPostCategory> <ul> @foreach (var item in Model) { <li>@Html.DisplayFor(modelItem => item.Name)</li> } </ul> @model

我有以下称为_Categories的局部视图,位于~/Views/Category/_Categories中:

@model IEnumerable<MyBlogSite.Models.BlogPostCategory>

<ul>
@foreach (var item in Model)
{
    <li>@Html.DisplayFor(modelItem => item.Name)</li>
}
</ul>
@model IEnumerable
    @foreach(模型中的var项目) {
  • @DisplayFor(modelItem=>item.Name)
  • }
我在~/Views/Blog/Index.cshtml上有以下索引视图:

@model IEnumerable<MyBlogSite.Models.BlogPost>

@{
   ViewBag.Title = "Index";
 }

@Html.RenderPartial("~/Views/Category/_Categories.cshtml", ---- );

<p>
   @Html.ActionLink("New Blog Post", "Create")
</p>
<table>
<tr>
    <th>
        @Html.DisplayNameFor(model => model.Title)
    </th>       
    ...
@model IEnumerable
@{
ViewBag.Title=“Index”;
}
@RenderPartial(“~/Views/Category/_Categories.cshtml”,-----);

@ActionLink(“新博客文章”,“创建”)

@DisplayNameFor(model=>model.Title) ...
在上面的破折号(--)中,我一直在试图找出如何传递模型。我无法使用Model.BlogPostCategory,因为它只接受Model.BlogPost。根据我在这里看到的几篇文章,我还尝试了小写字母“m”的“model”

我为我的partialview创建viewmodel,然后传递它的数据。例如: 我的视图模型

public class CompanyCreateViewModel
{
    public Company Company { get; set; }
    public IList<CompanyContact> CompanyContacts { get; set; }
    public IQueryable<ContactType> ContactTypes { get; set; }
}
公共类公司CreateViewModel
{
上市公司{get;set;}
公共IList CompanyContacts{get;set;}
公共IQueryable联系人类型{get;set;}
}
局部视图

@model Invoice.model.HelperClasses.CompanyCreateViewModel
---
@Html.TextBoxFor(model=>model.Company.FullName)
@Html.ValidationMessageFor(model=>model.Company.FullName)
@Html.TextBoxFor(model=>model.Company.ShortName)
@Html.ValidationMessageFor(model=>model.Company.ShortName)
@Html.TextBoxFor(model=>model.Company.TIN)
@Html.ValidationMessageFor(model=>model.Company.TIN)
@Html.TextBoxFor(model=>model.Company.Address.Country)
@TextBoxFor(model=>model.Company.Address.City)
@Html.TextBoxFor(model=>model.Company.Address.Street)
---
并通过调用partialview查看

@model Invoice.model.HelperClasses.CompanyViewModel
---
@{Html.RenderPartial(“CompanyParts/companyCreateModel”,newinvoice.Model.HelperClasses.CompanyCreateViewModel(){ContactTypes=Model.ContactTypes});
}
----
@model Invoice.Model.HelperClasses.CompanyCreateViewModel
---
<div class="editor-field">
        @Html.TextBoxFor(model => model.Company.FullName)
        @Html.ValidationMessageFor(model => model.Company.FullName)
        @Html.TextBoxFor(model => model.Company.ShortName)
        @Html.ValidationMessageFor(model => model.Company.ShortName)
        @Html.TextBoxFor(model => model.Company.TIN)
        @Html.ValidationMessageFor(model => model.Company.TIN)
    </div>
    <div class="editor-field">
        @Html.TextBoxFor(model => model.Company.Address.Country)
        @Html.TextBoxFor(model => model.Company.Address.City)
        @Html.TextBoxFor(model => model.Company.Address.Street)
    </div>    
    ---
@model Invoice.Model.HelperClasses.CompanyViewModel
---
<div id="CompanyCreateModal" class="modal hide fade">
    @{Html.RenderPartial("CompanyParts/CompanyCreateModal", new Invoice.Model.HelperClasses.CompanyCreateViewModel() { ContactTypes = Model.ContactTypes });
    }
</div>
----