ASP.Net Core Razor Pages应用程序未绑定到模型中的属性

荒唐

我有一个登录页面,在页面模型中有一个名为LoginDTO(我的自定义类)的属性。其中只有两个字符串-用户名和密码。

在登录页面上,我有一个包含两个字段的登录表单,您可能会猜出它们是什么。代码在这里:

<div class="form-group">
    <input class="form-control" type="email" name="email" placeholder="Email" asp-for="LoginDTO.Username">
</div>
<div class="form-group">
    <input class="form-control" type="password" name="password" placeholder="Password" asp-for="LoginDTO.Password">
</div>

我填写了输入字段,然后点击了Submit(表单方法设置为POST,我OnPost在页面模型中有一个方法可以处理它),由于某种原因,它LoginDTO.Username为null,但是LoginDTO.Password已填充?因此,当然,ModelState是无效的,没有Username字符串可使用。

怎么会这样?我试过重命名变量并将其设置为value="@Model.LoginDTO.Username"而不是使用asp-for,两者都没有任何区别。

有人可以帮忙吗?

更新:我将该Username属性更改Email,它现在开始工作?!为什么这些属性的名称会影响是否可以为其分配值?!?!

瑞娜

我将“用户名”属性更改为“电子邮件”,并且现在可以开始工作了?!为什么这些属性的名称会影响是否可以为其分配值?!?!

首先,您需要知道对于复杂类型的每个属性,模型绑定都会通过源查找名称模式prefix.property_name如果未找到任何内容,则仅查找property_name不带前缀的内容。

参考:

https://docs.microsoft.com/zh-cn/aspnet/core/mvc/models/model-binding?view=aspnetcore-3.1#complex-types

然后,您需要知道asp-for默认情况下标签帮助程序会生成如下所示的html:

<input id="LoginDTO_Username" name="LoginDTO.Username">

但是您将name属性添加到输入元素,因此它将覆盖该name属性,它将呈现html,如下所示:

<input id="LoginDTO_Username" name="email">

因此,模型绑定系统找不到username源。这就是为什么在将Username属性更改为之后它可以工作的原因Email

对于您的方案,如果您不想更改模型属性名称,则可以进行如下更改:

<input class="form-control" type="email" name="username" placeholder="Email" asp-for="LoginDTO.Username">

或仅使用asp-for标签助手:

<div class="form-group">
    <input class="form-control" type="email" placeholder="Email" asp-for="LoginDTO.Username">
</div>
<div class="form-group">
    <input class="form-control" type="password" placeholder="Password" asp-for="LoginDTO.Password">
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Asp .Net Core 3.1 Razor页面:复杂模型绑定

来自分类Dev

ASP net Core Razor Pages - EF 和视图的拆分模型

来自分类Dev

ASP.NET Core MVC之前的应用程序中的Razor标签帮助器

来自分类Dev

ASP.NET Core Razor 页面 - 不绑定 POST 请求

来自分类Dev

Razor Pages Asp.Net-Core安装FullCalendar

来自分类Dev

FullCalendar未显示在Asp.Net Core Razor视图中

来自分类Dev

ASP.NET Core Razor Page Pass ID 到 Modal

来自分类Dev

ASP.NET Core Razor-全局异常处理程序

来自分类Dev

Asp.net Core Razor页面中的自举警报

来自分类Dev

Asp.NET Core MVC Razor页面渲染中的NotSupportedException

来自分类Dev

在ASP.net Core 3.1 Razor页面中打印PDF

来自分类Dev

ASP.NET Core 2 razor 页面中的文件上传

来自分类Dev

上载asp.net core 3.1 Razor

来自分类Dev

ASP.NET Core MVC-传递给视图的模型属性显示Razor中的null

来自分类Dev

部分页面的类库标签帮助器在ASP.NET Core 3.1 Razor Pages应用程序中不起作用

来自分类Dev

ASP Core Razor Pages 双向绑定

来自分类Dev

重命名ASP.NET Core Razor Pages中的Pages / Shared目录

来自分类Dev

ASP.NET Core Razor页面-返回Page()后,复杂模型属性为null

来自分类Dev

如何在Razor Pages ASP.NET Core中的布局内访问HostingEnvironment?

来自分类Dev

部署站点上的Razor Pages / ASP.NET CORE路由问题(404错误)

来自分类Dev

为什么对Decimal的验证对ASP.NET Core 3.1 Razor Pages不起作用?

来自分类Dev

如何通过Razor Pages扩展ASP.NET Core MVC项目?

来自分类Dev

创建一个空的 ASP.NET Core 2.0 Razor Pages 项目

来自分类Dev

ASP.NET Core 2.1:Razor Pages - 基于角色的授权不起作用

来自分类Dev

从视图路由到Razor页面操作Asp.Net Core 3

来自分类Dev

ASP.NET Core 3.1 Razor页面:如何自动从“索引”页面重定向到“登录”页面?

来自分类Dev

Azure上的ASP.NET Core:找不到程序集文件dotnet-razor-tooling.exe

来自分类Dev

将项目保存到ASP.NET Core Razor页面中的集合中

来自分类Dev

在Asp.Net Core的Razor页面中检查登录用户AuthorizePolicy

Related 相关文章

  1. 1

    Asp .Net Core 3.1 Razor页面:复杂模型绑定

  2. 2

    ASP net Core Razor Pages - EF 和视图的拆分模型

  3. 3

    ASP.NET Core MVC之前的应用程序中的Razor标签帮助器

  4. 4

    ASP.NET Core Razor 页面 - 不绑定 POST 请求

  5. 5

    Razor Pages Asp.Net-Core安装FullCalendar

  6. 6

    FullCalendar未显示在Asp.Net Core Razor视图中

  7. 7

    ASP.NET Core Razor Page Pass ID 到 Modal

  8. 8

    ASP.NET Core Razor-全局异常处理程序

  9. 9

    Asp.net Core Razor页面中的自举警报

  10. 10

    Asp.NET Core MVC Razor页面渲染中的NotSupportedException

  11. 11

    在ASP.net Core 3.1 Razor页面中打印PDF

  12. 12

    ASP.NET Core 2 razor 页面中的文件上传

  13. 13

    上载asp.net core 3.1 Razor

  14. 14

    ASP.NET Core MVC-传递给视图的模型属性显示Razor中的null

  15. 15

    部分页面的类库标签帮助器在ASP.NET Core 3.1 Razor Pages应用程序中不起作用

  16. 16

    ASP Core Razor Pages 双向绑定

  17. 17

    重命名ASP.NET Core Razor Pages中的Pages / Shared目录

  18. 18

    ASP.NET Core Razor页面-返回Page()后,复杂模型属性为null

  19. 19

    如何在Razor Pages ASP.NET Core中的布局内访问HostingEnvironment?

  20. 20

    部署站点上的Razor Pages / ASP.NET CORE路由问题(404错误)

  21. 21

    为什么对Decimal的验证对ASP.NET Core 3.1 Razor Pages不起作用?

  22. 22

    如何通过Razor Pages扩展ASP.NET Core MVC项目?

  23. 23

    创建一个空的 ASP.NET Core 2.0 Razor Pages 项目

  24. 24

    ASP.NET Core 2.1:Razor Pages - 基于角色的授权不起作用

  25. 25

    从视图路由到Razor页面操作Asp.Net Core 3

  26. 26

    ASP.NET Core 3.1 Razor页面:如何自动从“索引”页面重定向到“登录”页面?

  27. 27

    Azure上的ASP.NET Core:找不到程序集文件dotnet-razor-tooling.exe

  28. 28

    将项目保存到ASP.NET Core Razor页面中的集合中

  29. 29

    在Asp.Net Core的Razor页面中检查登录用户AuthorizePolicy

热门标签

归档