私は、パーサービューとレイザーページを利用しようとしています。私は周りを探索し、複数のことを試しましたが、解決策のどれも私のために働いていませんでした。私のエントリ/ index.cshtml.cs(コードビハインド)ページプロパティをパーシャルビューに正しく渡すにはどうすればよいですか?
public class IndexModel : PageModel
{
private readonly CrewLogContext _context;
public IndexModel(CrewLogContext context)
{
_context = context;
}
[BindProperty]
public IList<EntryLog> EntryLog { get;set; }
public TeamMember TeamMember { get; set; }
public async Task OnGetAsync(string id)
{
TeamMember = await _context.TeamMember.Include(x => x.Position).Include(p => p.Shift).FirstOrDefaultAsync(p => p.Id == id);
EntryLog = await _context.EntryLog.Where(x => x.TeamMemberId== id)
.Include(e => e.Reason)
.Include(e => e.ReasonType).ToListAsync();
}
だから私はTeamMemberプロパティを満たしていると私はそれが値を持って知って
。
on the index.cshtml TeamMemberの部分表示を使用しようとしています。
@Html.Partial("_TeamMember", Model.TeamMember)
部分ビュー_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>
ただし、Model.propertynameを含める場合のみエラーが発生します。私はラムダエクスプレスモデル=> model.propertynameを使用する場合、それは正常に動作します。
私はPHOTOIDフィールドに基づいてTeamMember画像を表示しようとしているが、私は部分的なビューを使用してはいけないが、代わりに、私は同じページ内のHTMLを入れて、それがうまく機能すれば、私は
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%" />
を取得します。
また、@ Html.Partial( "_ TeamMember"、新しいModels.TeamMember())のようなモデルの新しいインスタンスを作成しようとしましたが、これは機能しませんでした。
なぜlambda式で動作するのですか?私がModel.propertyNameを実行すると、それはなぜですか?私は何を間違えているのですか?
ありがとうございました。 @pageを削除しました。 – causita
信じられないほど...公式の文書を全部見て、これについて何も見ることができませんでした。どのようにシンプル、絶対に重要な、まだ彼らはそれについて何も言わない。大変ありがとう@ddeamaral。 – shadowf
問題ありません!喜んで助けて! – ddeamaral