Net Core 内联 Razor 标记空模型
Net Core Inline Razor Markup Null Model
我第一次使用 Razor Pages 内联标记。 运行 在将 ViewModel 传递给 PartialView 后遇到这个奇怪的问题。
当然,在我的父页面中,我将 ViewModel 传递给 PartialView:
@{Html.RenderPartial("Partial/_RequestView", Model.NewRequest);}
public class IndexModel : PageModel
{
private readonly IActiveDirectoryClient _activeDirectoryClient;
private readonly ITravelClient _travelClient;
public IEnumerable<TravelRequestViewModel> Requests { get; set; }
在部分视图中,我在 lambda 表达式中引用模型没有问题
@Html.HiddenFor(model => model.RequestId)
但是,当我尝试在内嵌 razor 标记中引用模型时,模型为空。有任何想法吗?
<p>@Model.Name</p>
NewRequest 属性 在父页面的 OnGetAsync() 方法中设置
public async Task<IActionResult> OnGetAsync()
{
NewRequest = BuildNewRequest();
if (NewRequest == null)
throw new NullReferenceException("Unable to build new travel request");
return await Task.FromResult(Page());
}
回答了我自己的问题。必须删除 @page 指令,以便分部视图工作并识别 @Model。
VS 2017 模板为部分视图添加此指令有点奇怪,我只能假设这是一个错误。
我第一次使用 Razor Pages 内联标记。 运行 在将 ViewModel 传递给 PartialView 后遇到这个奇怪的问题。
当然,在我的父页面中,我将 ViewModel 传递给 PartialView:
@{Html.RenderPartial("Partial/_RequestView", Model.NewRequest);}
public class IndexModel : PageModel
{
private readonly IActiveDirectoryClient _activeDirectoryClient;
private readonly ITravelClient _travelClient;
public IEnumerable<TravelRequestViewModel> Requests { get; set; }
在部分视图中,我在 lambda 表达式中引用模型没有问题
@Html.HiddenFor(model => model.RequestId)
但是,当我尝试在内嵌 razor 标记中引用模型时,模型为空。有任何想法吗?
<p>@Model.Name</p>
NewRequest 属性 在父页面的 OnGetAsync() 方法中设置
public async Task<IActionResult> OnGetAsync()
{
NewRequest = BuildNewRequest();
if (NewRequest == null)
throw new NullReferenceException("Unable to build new travel request");
return await Task.FromResult(Page());
}
回答了我自己的问题。必须删除 @page 指令,以便分部视图工作并识别 @Model。
VS 2017 模板为部分视图添加此指令有点奇怪,我只能假设这是一个错误。