字符串 – 自定义Asp.net MVC 3编辑器模板没有被使用

前端之家收集整理的这篇文章主要介绍了字符串 – 自定义Asp.net MVC 3编辑器模板没有被使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用Razor视图引擎的MVC 3 Web应用程序.我想扩展默认编辑器模板,所以我想添加额外的 HTML5属性到输入元素,如自动对焦.

我正在使用AdditionalMetadataAttribute来指定我的实体的某些属性自动对焦:

public class MyEntity
{
    public int Id { get; set; }

    [required]
    [AdditionalMetadata("autofocus",true)]
    [DataType(DataType.Text)]
    public string Name { get; set; }

    ...
}

因为视图脚手架使用EditorFor方法,我决定玩,想要覆盖默认的String.cshtml模板,以便它也添加任何额外的元数据作为属性.要玩,意味着我不想使用TextBoxFor在哪里可以控制输入的属性.

这是我稍微改变的String.cshtml,它将所有其他元数据属性添加为输入HTML属性

@{
    // System.Diagnostics.Debugger.Break();
    this.ViewData.ModelMetadata.AdditionalValues.Add("class","text-Box single-line");
}
@Html.TextBox(string.Empty,ViewContext.ViewData.TemplateInfo.FormattedModelValue,this.ViewData.ModelMetadata.AdditionalValues)

该模板应该使用相同的CSS类,使用相同的输入类型=文本,但是如果提供了其中任何一个属性,也可以使用其他属性.

然后我把这个文件放在〜/ Views / Shared / EditorTemplates /文件夹中,但是似乎这个模板从来没有被拿起来,因为我得到的只是默认的输入文本框.

我究竟做错了什么?

解决方法

您的String.cshtml编辑器模板永远不会因为以下属性:[DataType(DataType.Text)]您用来装饰您的模型属性.

这使用〜/ Views / Shared / EditorTemplates / Text.cshtml模板.

原文链接:https://www.f2er.com/aspnet/246311.html

猜你在找的asp.Net相关文章