模型属性未从 Razor Page(核心)传递回 OnPost 方法

发布时间:2021-03-06 17:03

我对使用 EF Core 的 Razor Pages 很陌生,遇到了一些问题。

我有一个名为 Entry 的模型,其中包含一些属性...

enter image description here

在 Entry/Edit 类的 OnGetAsync() 方法中,我正在填充 Entry 模型以传递给视图。您可以在此处看到 FishSpeciesId 字段与其他属性一起填充。一切正常:

enter image description here

在我的应用程序中,该值可以正常传递并按预期显示:

enter image description here

没有做任何更改,我单击提交按钮将模型传递回 OnPostAsync() 方法,并且模型条目中的所有属性都按预期填充,除了 FishSpecies 和 FishSpeciesId。

enter image description here

还有什么我可以检查的,看看为什么我看到这个特定值从 Entry 模型中消失了?非常感谢任何建议。

回答1

首先确保您在剃刀页面模型中使用 [BindProperty] 模型作为 Entry 类。 像这样:

[BindProperty]
public EntryViewModel EntryModel { get; set; }

接下来确保您在回发中需要的属性已绑定并在您的 .cshtml 文件中使用。

回答2

我发现(尚未确认这是否是“事情”)似乎我无法将名称标签应用到 cshtml 文件的输入控件上。

enter image description here

当我删除 name 属性(我认为在 Javascript 中使用 - 但实际上不是)时,一切正常:

enter image description here

我可以在 GetPostAsync() 上看到我的 FishSpecies 值

enter image description here

我很想知道是否有其他人注意到这一点,或者是否更熟悉 Razor Pages 如何解释这里发生的事情?