首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.Net MVC-5编辑器模板、ViewData和占位符(水印)导致无关标记

ASP.Net MVC-5编辑器模板、ViewData和占位符(水印)导致无关标记
EN

Stack Overflow用户
提问于 2013-12-17 13:01:31
回答 2查看 1.4K关注 0票数 0

我已经为我的每个输入类型实现了一个编辑器模板,它用来自我的模型的“提示”显示注释填充css“占位符”。

在第一个例子中,我只是将"placeholder"=ViewData.ModelMetaData.Watermark添加到ViewData中,并将ViewData传递给TextBox() HtmlAttributes参数,这在这里和周围的几个帖子中都有这样的建议。(特别感谢达林·季米特洛夫。)

但是,这样做的效果是在每个输入控件中添加“返回”、“标题”和其他几个ViewData属性。不太满意。

我看了一下这个职位,正要试一试,我想我会采纳这个想法,创建一个字符串数组来表示我不希望包含在输入标记和循环中的ViewData属性的键,并且只添加那些不在列表中的属性。

这是字符串编辑器模板(Shared\EditorTemplates\String.cshtml)的代码:

代码语言:javascript
复制
@{
IDictionary<string, object> htmlAtts = new Dictionary<string, object>();
string[] varData = {"ReturnUrl", "Title"}; //there are more values in my actual code
foreach (KeyValuePair<string, object> entry in ViewData)
{
    if (!varData.Contains(entry.Key)) {
        htmlAtts.Add(entry.Key, entry.Value);
    }
}
htmlAtts["placeholder"] = ViewData.ModelMetadata.Watermark;
}
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, htmlAtts)

(顺便说一句,这段代码将被重新考虑以保持干燥)

如果“占位符”是由框架实现的,或者有一种简单的方法在此时抓取HTML属性并将“占位符”添加到这些属性中,而不必执行这个循环来排除非HTML属性视图数据,那就太好了。

我是不是遗漏了什么?是否有更好的方法来实现这个解决方案所做的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-25 13:38:54

正如我在问题中提到的,这是解决问题(Shared\EditorTemplates\String.cshtml)的字符串编辑器模板的代码:

代码语言:javascript
复制
@{
IDictionary<string, object> htmlAtts = new Dictionary<string, object>();
string[] varData = {"ReturnUrl", "Title"}; //there are more values in my actual code
foreach (KeyValuePair<string, object> entry in ViewData)
{
    if (!varData.Contains(entry.Key)) {
        htmlAtts.Add(entry.Key, entry.Value);
    }
}
htmlAtts["placeholder"] = ViewData.ModelMetadata.Watermark;
}
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, htmlAtts)
票数 0
EN

Stack Overflow用户

发布于 2014-09-16 18:45:36

如果您想要完成的只是从ViewData.ModelMetadata.Watermark中添加占位符,那么您的字符串模板可以如下所示:

代码语言:javascript
复制
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, new { placeholder = ViewData.ModelMetadata.Watermark })

您的占位符文本可以在视图模型的DataAnnotations中设置。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20634891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档