我有2个控制器,产生2个索引视图。 我想这样做的是使用这些视图为全局共享的部分观点,但似乎无法得到这个工作。
有谁知道这是否可能?
我的控制器代码
public ActionResult Index()
{
var viewModel = (from P in db.Projects
join R in db.Reports on P.ProjectTitle equals R.ReportProjectID into ps
from R in ps.DefaultIfEmpty()
select new MyViewModel { Project = P, Report = R });
return View(viewModel);
}
我的视图模型代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MiLife2.ViewModels
{
public class MyViewModel
{
public Project Project { get; set; }
public Report Report { get; set; }
}
}
而我的观点是
@model IQueryable<MiLife2.ViewModels.MyViewModel>
@{
ViewBag.Title = "Index";
}
enter code here
<h2>Index</h2>
<div>@Html.Partial("_Partial1")</div>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.Project.ProjectTitle </td>
<td>@item.Project.ProjectCreatedByID</td>
<td>@item.Project.ProjectCreatedDate</td>
<td>@if (item.Report == null)
{
<text>No Reports</text>
}
else
{
@item.Report.Title;
}
</td>
<td>@if (item.Report == null)
{
<text> </text>
}
else
{
@item.Report.Description;
}</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.Project.ProjectID }) |
@Html.ActionLink("Details", "Details", new { id=item.Project.ProjectID }) |
@Html.ActionLink("Delete", "Delete", new { id=item.Project.ProjectID })
</td>
</tr>
}
</table>
如果我创建一个部分页面和上述观点粘贴进去,然后用@ HTML.Partial(“_ ProjPartial”)我得到错误
传递到词典中的模型项的类型为“System.Collections.Generic.List 1[MiLife2.Project]', but this dictionary requires a model item of type 'System.Linq.IQueryable
1 [MiLife2.ViewModels.MyViewModel]” 。
如果我在特定的控制器使用@ HTML.Partial(“_ ProjPartial”),从指数CSHTML页面内views文件夹不会出现这种情况。