【问题标题】:[Display(Prompt MVC3[显示(提示 MVC3
【发布时间】:2011-08-05 18:03:55
【问题描述】:

我正在尝试设置我的模型,以便我可以使用 @Html.EditorFor(e => e.publicationTitle) 并让它显示带有提示的水印。

目前我在做

@Html.LabelFor(e => e.PublicationTitle) @Html.TextBox("PublicationTitle",tempTitle.ToString(), new { style = "width:350px", placeholder = "Put title here" })
       @Html.ValidationMessageFor(e => e.PublicationTitle)

我发现你可以在我的模型中添加[Display(Prompt="Enter title here")]

但由于某种原因,它没有出现在我的视图中。

附带说明。我确实尝试按照这篇文章的说明进行操作 Html5 Placeholders with .NET MVC 3 Razor EditorFor extension?

在这篇文章的最后,它说要更改 ~/Views/Shared/EditorTemplates/String.cshtml 文件,但该文件不在我的项目中。

任何提示将不胜感激。提前谢谢你。

跟进!

啊,MVC3 的乐趣。显然,一旦您了解发生了什么,上面的帖子就回答了这个问题。如果您在 ~/Views/Shared/ 文件夹中创建 EditorTemplates/String.cshtml 文件,那么它将将此模板用于您的编辑框。

简明扼要的最终答案将在下面发布。

【问题讨论】:

  • 看看下面的帖子; stackoverflow.com/questions/5824124/…
  • 我看过那篇文章,但它谈到了创建自定义属性。有一个内置的,我应该可以使用它。该帖子中的第二个答案是关于修改 ~/Views/Shared/EditorTemplates/MultilineText.cshtml 但我在我的项目中找不到该文件。
  • 那里有你的问题的具体答案:stackoverflow.com/questions/5824124/…
  • 我知道这个问题似乎回答了我的问题,但它让您编辑的文件在我的项目中的任何地方都不存在。

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


【解决方案1】:

在您的控制器中,您需要执行以下操作

[Display(Prompt="First Name Goes Here",Name="First Name")]
[StringLength(100,ErrorMessage="First Name may not be longer than 100 characters")]
public string AuthFirstName { get; set; }

显示下的 Prompt="This is what will display" 是要创建的水印。

然后您需要在 ~/Views/Shared 下创建文件夹“EditorTemplates”,整个路径将是 ~/Views/Shared/EditorTemplates/

然后创建文件String.cshtml并将以下代码放入其中

@Html.TextBox("",ViewData.TemplateInfo.FormattedModelValue, new { @class="text-box single-line", placeholder = ViewData.ModelMetadata.Watermark })

更多详细信息可以在 tugberk 发布的链接中找到(SO questionSO answer)。

【讨论】:

  • 谢谢,我喜欢我不必像您提到的其他帖子那样创建自定义属性。
【解决方案2】:

不幸的是,这不适用于 IE。至少 IE9 及更早版本。我花了几个小时拉扯我的头发,为什么这对其他人有帮助而在这里不起作用。显然 IE 不会显示提示。希望 IE10 能解决这个问题。

【讨论】:

    【解决方案3】:

    早期版本的 IE 不支持占位符属性,所以为了让 Display[(Promt="...")] 正常工作,我建议使用(连同 Samack 描述的字符串模板)任何 jQuery 水印插件(我使用的是 google 插件)将此添加到 Document.Ready 函数中:

    $(document).ready(function(){
        $(':text').watermark({ textAttr: 'placeholder' });
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      相关资源
      最近更新 更多