从 ASP.NET Core Razor 页面获取 DisplayAttribute.Prompt

Posted

技术标签:

【中文标题】从 ASP.NET Core Razor 页面获取 DisplayAttribute.Prompt【英文标题】:Get DisplayAttribute.Prompt from ASP.NET Core Razor page 【发布时间】:2022-01-19 16:16:37 【问题描述】:

假设我有以下模型:

public class MyModel

    [Display(Prompt = "Hello")]
    public string MyProperty  get; set;      

如何从 Razor 代码 (cshtml) 中获取 Prompt 值?我想将其用作下拉列表中的默认选择。 我有一个使用属性ModelMetadata.Watermark 的 ASP.NET MVC 解决方案,但据我所知,它在 ASP.NET Core 中不可用。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

我创建了一个示例代码进行测试,它适用于我。您可以获取价值Prompt 并使用它。

示例代码

@
    ViewData["Title"] = "Home Page";

@model dotnetcoreMVC.Prescription;
@using System.Reflection;
@using System.ComponentModel.DataAnnotations;
<div>
    @
        MemberInfo property = typeof(dotnetcoreMVC.Prescription).GetProperty("PrescriptionText");
        var dd = property.GetCustomAttribute(typeof(DisplayAttribute)) as DisplayAttribute;
        <p>@dd.Prompt</p>
    
</div>

我的模型。

【讨论】:

以上是关于从 ASP.NET Core Razor 页面获取 DisplayAttribute.Prompt的主要内容,如果未能解决你的问题,请参考以下文章

如何从 ASP.NET Core 的 Razor 视图中获取 Url 中 id 的值

覆盖 asp.net core razor 页面中的 razor 视图

Asp.net Core 3.1-如何从控制器返回到 Razor 页面?

尝试从 ASP.NET Core MVC Razor 中的 _Layout 页面重定向时出错

如何在 ASP.NET Core Razor 页面中绑定复杂列表

ASP.NET Core Razor 页面与完整 MVC Core [关闭]