You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Razor页面<input asp-for>提交int类型值始终为null问题

原因分析

核心问题在于 Department 类中的 defaultDisplayOrder、managerRoleId、userRoleId 是字段(Field),而非C#属性(Property)。Asp.Net Core的模型绑定系统仅对带有 get 和 set 访问器的属性生效,不会处理普通字段。

解决方案

将这些字段修改为自动属性,添加 get; set; 访问器:

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Diagnostics.CodeAnalysis;

namespace Scratch.Data
{
    public class Department
    {
        [Key]
        public int Id { get; set; }

        [Required]
        public string departmentName { get; set; }

        [Required]
        [ForeignKey("AspNetUsers")]
        public string departmentManagerId { get; set; }

        [AllowNull]
        [ForeignKey("AspNetUserRoles")]
        public string? managerRoleId { get; set; }

        [AllowNull]
        [ForeignKey("AspNetUserRoles")]
        public string? userRoleId { get; set; }

        [AllowNull]
        public int? defaultDisplayOrder { get; set; }
    }
}

修改后,模型绑定系统就能正确识别这些属性,提交的数值会被正常绑定到 Department.defaultDisplayOrder 中。

内容的提问来源于stack exchange,提问作者DED

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 09:30:57