【发布时间】:2020-07-27 13:38:16
【问题描述】:
是否可以,如果可以,如何添加自定义模型字段注释以在视图中以特定方式呈现?
快速示例:
这是一个简单的 ContactUs 模型类:
namespace Core.Business.Models
{
public class ContactUsModel
{
public string Name { get; set; }
public string EmailAddress { get; set; }
public string Telephone { get; set; }
public string Message { get; set; }
}
}
然后在视图中呈现如下:
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group row">
<label asp-for="Name" class="col-sm-3 control-label"></label>
<div class="col-sm-9">
<input asp-for="Name" class="form-control" />
<span asp-validation-for="Name" class="text-danger"></span>
</div>
</div>
<div class="form-group row">
<label asp-for="EmailAddress" class="col-sm-3 control-label"></label>
<div class="col-sm-9">
<input asp-for="EmailAddress" class="form-control" />
<span asp-validation-for="EmailAddress" class="text-danger"></span>
</div>
</div>
<div class="form-group row">
<label asp-for="Telephone" class="col-sm-3 control-label"></label>
<div class="col-sm-9">
<input asp-for="Telephone" class="form-control" />
<span asp-validation-for="Telephone" class="text-danger"></span>
</div>
</div>
<div class="form-group row">
<label asp-for="Message" class="col-sm-3 control-label"></label>
<div class="col-sm-9">
<textarea rows="8" asp-for="Message" class="form-control"></textarea>
<span asp-validation-for="Message" class="text-danger"></span>
</div>
</div>
<input type="submit" value="Send Message" class="btn btn-primary" />
现在,我真正想要的是能够向模型类添加自定义注释,以在预先设计的庄园中呈现:
例如:ContactUs 模型类:
namespace Core.Business.Models
{
public class ContactUsModel
{
public string Name { get; set; }
public string EmailAddress { get; set; }
public string Telephone { get; set; }
[CustomTag(Description="Please enter your message here, the more information you can provide the better.")]
public string Message { get; set; }
}
}
然后在视图上我可以使用“标签助手”来显示这个注释:
<div class="form-group row">
<label asp-for="Message" class="col-sm-3 control-label"></label>
<div class="col-sm-9">
<textarea rows="8" asp-for="Message" class="form-control"></textarea>
**@html.MyTag(...here would be pulled in the custom tag annotation value....)**
<span asp-validation-for="Message" class="text-danger"></span>
</div>
</div>
我的想法是,我可以用“帮助”信息来注释模型类,这些信息可以在页面上呈现为帮助文本或“i”图标,单击时会弹出帮助文本。
可能吗?
谢谢
罗
【问题讨论】:
标签: c# asp.net-core asp.net-core-mvc asp.net-core-3.1