0

我在文本框中添加了一个提示模板。该模板在 Firefox 和 chrome 上运行良好,但在 IE10 上没有显示

模型属性:

[Display(Name = "Age*" , Prompt="Enter Number: ")]
public string Age { get; set; }

看法:

@Html.EditorFor(c => c.Age, new { @class = "form_txt" }) 

模板:

Views\Shared\EditorTemplates\String.chtml:
@Html.TextBox(string.Empty, ViewData.TemplateInfo.FormattedModelValue, new
{
    @class = "form_item txt txt_gray box_gray_focus rounded_corner",
    placeholder = ViewData.ModelMetadata.Watermark,
    title = ViewData.ModelMetadata.Description
})
4

2 回答 2

1

Html.EditorFor没有将htmlAttributes对象作为参数的实现。您正在使用该方法的以下实现,这意味着您将class = "form_txt"作为 ViewData 传递给您的 EditorTemplate。

public static MvcHtmlString EditorFor<TModel, TValue>(
    this HtmlHelper<TModel> html,
    Expression<Func<TModel, TValue>> expression,
    Object additionalViewData
)

您需要做的是class在 EditorTemplate 中定义属性,并Html.EditorFor像这样使用:

@Html.EditorFor(c => c.Age)
于 2013-08-25T14:52:48.043 回答
0

如果您不使用 EditorTemplate 而只是在您的视图中使用 TextBoxFor ......它在 IE10 中有效吗?

@Html.TextBoxFor(x => x.Age, new
{
    @class = "form_txt",
    placeholder = "Here enter your Age",
    title = "This is the title"
})

IE 直到 IE9 都没有实现占位符,但看起来 IE10 应该支持它。由于占位符不能替代标签,它只是一个提示,无论如何你都不应该依赖它们。

也就是说,有一些 jquery 插件可以在不支持浏览器或版本的情况下处理这个问题。

于 2013-08-25T14:06:36.650 回答