错误:传递到字典中的模型项的类型...但是这个字典需要一个类型的模型项目......"



我是编程的新手,当我尝试运行程序时,我遇到了一些问题。我一直在遇到此错误:"传递到字典中的模型项是类型为'dcms.models.models.projects.project',但是该词典需要类型'dcms.viewmodels.projectdetailsviewmodel'的模型项。 这是我的控制器:

        public ActionResult GetProjectView(int id)
            {
                var projectDataAccess = new ProjectDataAccess();
                var project = projectDataAccess.GetProject(id);
                if (project == null) return PartialView("Error");
                return View("ProjectView", project);
            }

这是我观点的一部分:

@model DCMS.ViewModels.ProjectListViewModel
@if (Model != null)
{
    foreach (var project in Model.ProjectList)
    {
        <div class="accordion-container">
            <h3 class="accordion-header">
                @Html.ActionLink(project.Client.ClientName + " / " + project.ProjectName + " / " + project.ProjectNum ?? "<null>", "GetProjectView", new {id = project.Id})<span class="right">@Html.ActionLink("View Details", "GetProjectView", new {id = project.Id})</span>
            </h3>
            <div class="accordion-body">
                <table class="accordion-details">
                    <tr class="accordion-evenrow">
                        <td class="accordion-header-column">
                            @Html.LabelFor(m => project.ProjectStatus)
                        </td>
                        <td class="accordion-value-column">
                            @project.ProjectStatus
                        </td>

这是ProjectView:

@model DCMS.ViewModels.ProjectDetailsViewModel
@{
    ViewBag.Title = "Project Details";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2 id="breadcrumbs">@Html.ActionLink("Projects", "Index", "Project") > @(Model.Project.ProjectName ?? "<null>")/@Model.Project.ProjectNum </h2>
<div id="tabs">
    <ul id="projectTabs" style="display:none;">
        <li><a href="#projectdetails">Project Details</a></li>
        <li><a href="#pricing">Client Pricing</a></li>
        <li><a href="#vendor">Vendor Pricing</a></li>
        <li><a href="#status">Status</a></li>
    </ul>
    <h2 style="margin:1px; font-size:20px;">@Model.Project.ProjectName /@Model.Project.ProjectNum</h2>
    <div id="projectdetails">
        @Html.Partial("Partial/EditProject")
    </div>
    <div id="pricing">
        @Html.Partial("Partial/Pricing")
    </div>
    <div id="status">
        @Html.Partial("Partial/ProjectStatus")
    </div>
    <div id="vendor">
        @Html.Partial("Partial/VendorPricing")
    </div>
</div>

<script type="text/javascript">
    $(document).ready(function(){
        $("#projectTabs").show();
        $("#tabs").tabs();
    });
</script>

如何将类型项目的项目传递到类型的projectDetailsviewModel的视图?我将感谢任何帮助。谢谢。

如错误所示,

传递到字典的模型项类型 'dcms.models.projects.project',但是该词典需要一个模型 类型'dcms.viewmodels.projectdetailsviewmodel'

的项目

ViewModel和通过的模型应该相同。

public ActionResult GetProjectView(int id)
{
      ProjectDetailsViewModel _projectModel = new ProjectDetailsViewModel();
      var projectDataAccess = new ProjectDataAccess();
      var project = projectDataAccess.GetProject(id);
       _projectModel.Project = project ;
       if (project == null) return PartialView("Error");
       return View("ProjectView", _projectModel );
 }

最新更新