【问题标题】:Partial view error Object reference not set to an instance of an object. MVC4 Razor部分视图错误对象引用未设置为对象的实例。 MVC4 剃刀
【发布时间】:2013-12-01 07:03:58
【问题描述】:

我正在做一个项目,为使用 MVC4 和 Razor 的学校创建 CMS。我需要在索引上创建一个局部视图(用于最新新闻和员工)并为每个模型获取最多 5 条记录我在我的共享文件夹中创建了一个局部视图但我一直收到这样的错误消息

异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例。

Line 1:  @model IEnumerable<MvcDale.Models.StaffModels>
Line 2:  @foreach ( var staff in Model ){
Line 3:      <div class="wrapper p4-1">
Line 4:          <figure class="img-indent3 box1">

源文件:c:\Users\Hammed\Documents\Visual Studio 2010\Projects\MvcDale\MvcDale\Views\Shared_StaffListPartial.cshtml 行:2

这就是我的局部视图文件的样子

@model IEnumerable<MvcDale.Models.StaffModels>
@foreach ( var staff1 in Model ){
    <div class="wrapper p4-1">
        <figure class="img-indent3 box1">
            <img src="@Url.Content(staff1.Picture)" alt="">
        </figure>
        <div class="extra-wrap">
            <h6><a href="#">@staff1.title @staff1.sname @staff1.oname @staff1.fname</a></h6>
            @staff1.profile 
        </div>
    </div>
    }
}

从我的主页索引视图中,我可以像这样调用它

{
   @Html.Partial("~/Views/Shared/_StaffListPartial.cshtml")
}

谁能帮助我或向我建议我的代码有什么问题。第一次做 ASP.net MVC。谢谢

@Dmytro

这是我的 staffModel 类

using System.Data.Entity;

namespace MvcDale.Models
{
    [Table("Staff")]
    public class StaffModels
    {
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int staff_id { get; set; }
        public string title { get; set; }
        public string fname {get; set;}
        public string sname {get; set;}
        public string oname {get; set;}
        public string phone { get; set; }
        public string email { get; set; }
        public string profile { get; set; }
        public string Picture { get; set; }

    }
}

这是我来自 ~/views/home/index 的 index.cshtml

@{ Layout = "~/Views/Shared/_LayoutPage1.cshtml"; }


@{
    ViewBag.Title = "Home Page";
    var Content = ViewBag.Content;
}

@section feature {
<div class="grid_11">
<div>
@Content;
</div>

                                <div class="indent-bottom10 indent-top5">
                                    <h2 class="p5"><span class="color-1">We are among</span> the leading research and teaching institutions of the world!</h2>
                                    <div class="wrapper">
                                        <div class="col-3-1">
                                            <h4 class="p2">Education Projects</h4>
                                            <ul class="list-1 p4-1">
                                                <li><a href="#">Education and Jobs</a></li>
                                                <li><a href="#">Public School Facts</a></li>
                                                <li><a href="#">International Studies</a></li>
                                                <li><a href="#">Public Engagement</a></li>
                                                <li class="last-item"><a href="#">State Testing Data</a></li>
                                            </ul>
                                            <a href="#" class="button button1">View All<span></span></a>
                                        </div>
                                        <div class="col-3-1 font-1">
                                            <h4 class="p2">General Info</h4>
                                            <p class="p5-1">Feipsumorbi nunc odiovia suorem aecena stiq cumsan malestonsetue adipiscing elit. Dolor&shy;sedum. Mauris fermen tum did oreealiquam leotum dictum magna. Sed oreet aliquam leo. Ut tellus dolor</p>
                                            <a href="#" class="button">Read More<span></span></a>
                                        </div>
                                        <div class="col-3-1 font-1 last-item">
                                            <h4 class="p2">Partners Programs</h4>
                                            <p class="indent-right4 p5-1">Nunc massa suorena stiq cumalest onsetuer adipi&shy;scing elit. Mauris fermen tum did oreet aliquam leo. Ut tellus dolor dapibuso eget elementum vel curus eleife elit. </p>
                                            <a href="#" class="button">Read More<span></span></a>
                                        </div>
                                    </div>
                                </div>
                                <div class="indent-right12">
                                    <h2 class="p6"><a href="#">Latest News</a></h2>
                                    <div class="wrapper font-1">
                                        <figure class="img-indent img-indent-none3">
                                            <img src="~/Images/teachers.png" alt="" />
                                        </figure>
                                        <div class="indent-top1 extra-wrap extra-wrap-none2 ">
                                            <p class="p2-1">Many surgeons are seriously affected on an emotional level when complications occur in the operating theatre, a study finds&shy;<a href="#" class="button">Read More<span></span></a>
                                        </div>
                                    </div>
                                </div>
                            </div>
}

@section staff_{
<h3 class="p3-1">our staff</h3>
 @model MvcDale.Models.GenModels
    @foreach ( var staff1 in Model.Staff)
    {
        @Html.Partial("~/Views/Shared/_StaffListPartial.cshtml", staff1)

    }                                                                                       

                                <a href="#" class="link">view all</a>

}

因为这是我的员工空间视图,我打算从

生成一个 5(最多)的列表
@model MvcDale.Models.StaffModels

    <div class="wrapper p4-1">
        <figure class="img-indent3 box1">
            <img src="@Url.Content(Model.Picture)" alt="">
        </figure>
        <div class="extra-wrap">
            <h6><a href="#">@Model.title @Model.sname @Model.oname @Model.fname</a></h6>
            @Model.profile 
        </div>
    </div>

这就是我打算归档的内容 所有模型和 dbcontext 都是为了我已经可以粗略的 db 表

【问题讨论】:

    标签: c# asp.net-mvc-4 razor


    【解决方案1】:

    您必须像这样在 Html.Partial 调用中为您的局部视图指定模型

    @Html.Partial("~/Views/Shared/_StaffListPartial.cshtml", Model.StaffModelsList)
    

    【讨论】:

    • 感谢您的回复@Dmytro 我做到了,但我仍然遇到问题如何最好地管理我的索引页面的部分视图 我已经在线浏览了一些教程,但无法获得令人满意的教程
    • 这里是索引文件''@{ Layout = "~/Views/Shared/_LayoutPage1.cshtml"; } @{ ViewBag.Title = "主页"; var 内容 = ViewBag.Content; } @section 功能 { } ..@section staff_{

      我们的员工

      ..@model MvcDale.Models.GenModels ..@foreach ( var staff1 in Model.Staff) { ..@Html.Partial("~/Views/Shared/_StaffListPartial.cshtml", staff1) } 查看全部 }'
    • staff1 是否有 IEnumerable 类型?还是只是序数 MvcDale.Models.StaffModels?
    • 我刚刚编辑了我的问题,所以你可以看到我已经修改了部分视图的结构
    • 目前您的代码看起来是正确的。你能调试和检查 foreach 中的 staff1 变量(Model.Staff 中的 var staff1)吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    • 2011-07-09
    相关资源
    最近更新 更多