C# 如何正确地将页面属性传递给partialview?

C# 如何正确地将页面属性传递给partialview?,c#,razor,lambda,asp.net-core-2.0,razor-pages,C#,Razor,Lambda,Asp.net Core 2.0,Razor Pages,我试图利用带有剃须刀页面的局部视图。我四处搜索,尝试了多种方法,但没有一种方法对我有效 在我的条目/index.cshtml.cs中(代码隐藏) 在partialView\u TeamMember.cshtml上 @page @model WebCrewLog.Models.TeamMember @{ } <h2></h2> <div class="panel panel-default"> <

我试图利用带有剃须刀页面的局部视图。我四处搜索,尝试了多种方法,但没有一种方法对我有效

在我的条目/index.cshtml.cs中(代码隐藏)

在partialView\u TeamMember.cshtml上

 @page
    @model WebCrewLog.Models.TeamMember

    @{
    }
    <h2></h2>
    <div class="panel panel-default">
        <div class="panel-body">

            <div class="row">
                <div class="col-lg-2">
    //Here is where I'm getting an error.
                    <img class="img-circle" src="@Url.Content(Model.PhotoID)" style="width: 80%; height: 80%" />               
                </div>
                <div class="col-lg-5">
                    <p>
                        <label class="text-success">@Html.DisplayFor(model => model.FirstName)  @Html.DisplayFor(model => model.LastName)</label><br />
                        Hired Date:<label class="text-success">@Html.DisplayFor(model => model.HireDate)</label><br />
                    </p>
                </div>
                <div class="col-lge-5">
                    <p>
                        Position:<label class="text-success">@Html.DisplayFor(model => model.Position.Name)</label><br />
                        Shift: <label class="text-success">@Html.DisplayFor(model => model.Shift.Name)</label>
                    </p>
                </div>
            </div>
            <div class="row">
            </div>
        </div>
    </div>
@page
@模型WebCrewLog.Models.TeamMember
@{
}
//这里是我得到一个错误的地方。

@Html.DisplayFor(model=>model.FirstName)@Html.DisplayFor(model=>model.LastName)
租用日期:@Html.DisplayFor(model=>model.HireDate)

位置:@Html.DisplayFor(model=>model.Position.Name)
Shift:@Html.DisplayFor(model=>model.Shift.Name)

但只有在包含Model.propertyname时,我才会出错。如果我使用lambda express model=>model.propertyname,它就可以正常工作

我试图根据PhotoID字段显示团队成员图像,但我得到

NullReferenceException: Object reference not set to an instance of an object.
    WebCrewLog.Pages._TeamMember_Page+<ExecuteAsync>d__0.MoveNext() in _TeamMember.cshtml
    +
                    <img class="img-circle" src="@Url.Content(Model.PhotoID)" style="width: 80%; height: 80%" />
NullReferenceException:对象引用未设置为对象的实例。
WebCrewLog.Pages.\u TeamMember\u Page+d\u 0.MoveNext()在\u TeamMember.cshtml中
+
如果我不使用部分视图,而是将html放在同一个页面中,它就可以正常工作

我还尝试创建一个新的模型实例,比如@Html.Partial(“\u TeamMember”,new Models.TeamMember()),但这不起作用


那么,为什么它与lambda表达式一起工作,但如果我使用Model.propertyName,它就不工作了?我做错了什么

这可能与您的分部正在使用页面指令有关吗?是否有针对分部的指令?我自己还没用过。

难以置信。。。看了所有的官方文件,都看不到这方面的任何东西。多么简单,绝对重要,但他们却什么也没说。非常感谢@ddeamaral。
 @page
    @model WebCrewLog.Models.TeamMember

    @{
    }
    <h2></h2>
    <div class="panel panel-default">
        <div class="panel-body">

            <div class="row">
                <div class="col-lg-2">
    //Here is where I'm getting an error.
                    <img class="img-circle" src="@Url.Content(Model.PhotoID)" style="width: 80%; height: 80%" />               
                </div>
                <div class="col-lg-5">
                    <p>
                        <label class="text-success">@Html.DisplayFor(model => model.FirstName)  @Html.DisplayFor(model => model.LastName)</label><br />
                        Hired Date:<label class="text-success">@Html.DisplayFor(model => model.HireDate)</label><br />
                    </p>
                </div>
                <div class="col-lge-5">
                    <p>
                        Position:<label class="text-success">@Html.DisplayFor(model => model.Position.Name)</label><br />
                        Shift: <label class="text-success">@Html.DisplayFor(model => model.Shift.Name)</label>
                    </p>
                </div>
            </div>
            <div class="row">
            </div>
        </div>
    </div>
NullReferenceException: Object reference not set to an instance of an object.
    WebCrewLog.Pages._TeamMember_Page+<ExecuteAsync>d__0.MoveNext() in _TeamMember.cshtml
    +
                    <img class="img-circle" src="@Url.Content(Model.PhotoID)" style="width: 80%; height: 80%" />