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

Blazor绑定:获取底层字段名称

获取Razor页面中绑定的字段名称

有几种实用的方法可以确认绑定的字段名称:

  • 在Razor模板内直接输出
    利用ASP.NET Core的HTML辅助方法,能直接拿到绑定的字段路径或名称:

    • @Html.NameFor(m => m.MyModel.Name):返回完整的绑定路径字符串(比如"MyModel.Name"),和生成的input元素的name属性值一致
    • @Html.DisplayNameFor(m => m.MyModel.Name):返回字段的显示名称(如果字段加了[Display]特性就用特性里的名称,否则用字段本身的名称)

    示例代码:

    <input @bind-value="MyModel.Name" />
    <p>当前绑定的字段路径:@Html.NameFor(m => m.MyModel.Name)</p>
    
  • 通过JavaScript读取DOM属性
    使用@bind-value时,Razor会自动给input元素生成对应的name属性,值就是绑定的字段路径。直接读取这个属性就能确认:

    const targetInput = document.querySelector('input');
    console.log('绑定的字段路径:', targetInput.name); // 输出 "MyModel.Name"
    
  • 后端通过模型元数据获取
    如果需要在后端逻辑里验证绑定字段,可以借助模型元数据服务:

    using Microsoft.AspNetCore.Mvc.ModelBinding.Metadata;
    
    public void OnGet()
    {
        var metadataProvider = HttpContext.RequestServices.GetRequiredService<IModelMetadataProvider>();
        // 替换成你的根模型类型
        var modelMetadata = metadataProvider.GetMetadataForType(typeof(YourRootModel));
        // 获取MyModel下的Name字段信息
        var nameFieldMeta = modelMetadata.Properties.First(p => p.PropertyName == "Name" && p.ContainerType == typeof(YourMyModel));
        // nameFieldMeta.PropertyName 即为字段名
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:25:31