C# 为MVC中文本框的占位符attr提供数据注释

C# 为MVC中文本框的占位符attr提供数据注释,c#,asp.net-mvc,html,viewmodel,C#,Asp.net Mvc,Html,Viewmodel,有没有一种方法可以在MVC视图的文本框中为placeholderattr中应该包含的内容提供数据注释 例如: 在my ViewModel.cs中,类似于: [Placeholder="First name"] public string FirstName { get; set; } @this.Html.TextBoxFor(m => m.FirstName) 在我看来: [Placeholder="First name"] public string FirstName { get

有没有一种方法可以在MVC视图的文本框中为
placeholder
attr中应该包含的内容提供数据注释

例如:

在my ViewModel.cs中,类似于:

[Placeholder="First name"]
public string FirstName { get; set; }
@this.Html.TextBoxFor(m => m.FirstName)
在我看来:

[Placeholder="First name"]
public string FirstName { get; set; }
@this.Html.TextBoxFor(m => m.FirstName)
如果这可能导致:

<input type="text" placeholder="First name" ... />


这可能吗?谢谢

我不这么认为,但是您可以编写自己的自定义帮助程序和属性来完成这项工作

试试看

@this.Html.TextBoxFor(m => m.FirstName, new{placeholder="First name"})
啊,模型里没有


您可以定义自己的custome属性。我认为您需要一个自定义html帮助程序来生成html。

我意识到这是很久很久以前提出的问题,但是带有
提示符的
Display
属性可能就是您在这里想要的

    [Display(Prompt = "Enter the country (default US)")]
    public string Country { get; set; }

谢谢你的链接!不幸的是,我没有看到任何示例可以在视图模型中的属性上方显示
[Placeholder=“First name”]
。相反,这里有
this.Html.TextboxFor(m=>m.FirstName,“此处的占位符文本”)
的示例,这将无法达到目的,因为我希望此硬编码文本与视图模型在一起,而不是在视图中。我知道,您需要滚动自己的帮助程序和属性。在这里,BuildStarted的回答显示了他是如何创建自定义属性的。您的自定义助手可以读取您的自定义属性。这太棒了!你知道我需要从哪个属性继承吗?链接中的示例继承自
ActionFilterAttribute
该示例有一个属性类列表,请选择最接近您要执行的操作的属性类。或者使用inherit from System.Attribute作为干净(er)的开始。