EditorTemplates不适用于IE10

时间:2013-08-25 13:28:35

标签: c# asp.net-mvc asp.net-mvc-3

我在文本框中添加了一个提示模板。该模板在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
})

2 个答案:

答案 0 :(得分: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
)

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

@Html.EditorFor(c => c.Age)

答案 1 :(得分: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没有实现占位符,但它looks like IE10 should support it。 由于占位符不是标签的替代品,它只是一个提示,不管怎样你都不应该依赖它们。

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