奇怪的登记表行为

本文关键字:登记表 | 更新日期: 2023-09-27 18:27:10

在我的注册页面上,我定义了以下内容,以便用户为其配置文件输入显示名称值。它是这样定义的:

<input id="DisplayName" type="text" value="" name="DisplayName" data-val-required="Use must provide a display name" data-val-length-max="50" data-val-length="The field Display name must be a string with a maximum length of 50." data-val="true">

我可以理解FF使用我的电子邮件地址作为"电子邮件"字段,但我从未在"显示名称"字段中使用过这个值,我之所以有显示名称字段,是为了确保用户的电子邮件地址永远不会用作显示名称。非常令人困惑。

模型上的属性定义如下:

[Required(ErrorMessage = "...")]
[Display(Name = "Display name", Description="...")]
[StringLength(50)]
public string DisplayName { get; set; }

为什么FF会在DisplayName字段中插入电子邮件?

奇怪的登记表行为

看起来Firefox正在根据输入元素及其周围的文本对如何填充该字段进行"最佳猜测",但它错了。您可以通过添加属性autocomplete="off"来禁用自动完成。

在Razor中,这将看起来像:

@Html.TextBoxFor(model => model.DisplayName, new { autocomplete = "off" })