c# - 在 MVC 中禁用 html 帮助文本框的自动完成

标签 c# asp.net-mvc skin

好的,

我会在正常的 asp.net 中使用主题来关闭整个站点上所有文本框的自动完成功能。但是我不能在 MVC 上执行此操作,因为主题 .skin 文件中的任何内容似乎都不起作用。

我的 .skin 文件中有这个:

<asp:TextBox runat="server" autocomplete="off" />

但是这根本不会呈现,当然因为这不是 MVC 的工作方式。无论如何,有什么办法可以让这种事情发挥作用。 我尝试在其上执行此操作的网站太大,无法保证更改每个文本框或创建新的 HTML 帮助程序来解决问题?

有人有什么想法吗?

最佳答案

MVC 没有像普通的旧 ASP.NET 那样的服务器控件。因此,不会对您的控件进行任何服务器处理。它们会按照您键入的方式呈现给客户端。主题不是您将在 MVC 中使用的东西,因为它们适用于 ASP.NET 服务器控件,您不会在这里使用它们。也就是说,HTML 助手确实会在呈现 View 时由服务器处理。您需要使用 html 属性重载将 autocomplete="off"添加到实际的 HTML 控件。

@Html.TextBoxFor(x => x.Something, new { autocomplete="off" } )

或者当您在 asp.net 服务器控件中设置 autocomplete="off"时呈现的任何实际 HTML 属性。

编辑:影响所有文本框的一种选择是创建您自己的 Html 辅助方法。只需像这样创建一个扩展方法:

using System.Web.Mvc;
using System.Web.Mvc.Html;

public static MvcHtmlString NoAutoCompleteTextBoxFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression)
{
    return html.TextBoxFor(expression, new { autocomplete="off" });
}

然后你可以这样做:

Html.NoAutoCompleteTextBoxFor(x => x.Something)

关于c# - 在 MVC 中禁用 html 帮助文本框的自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5274407/

相关文章:

c# - Fluent NHibernate table per hierarchy 映射问题

c# - 如何在 WPF 中使用捏合功能同时启用滚动和缩放?

c# - MS Chart Control 中的对数垂直轴和水平轴线

javascript - Mvc表如何根据条件更改文本颜色

asp.net-mvc - token 无效。使用 UserManager.ConfirmEmailAsync(user.Id, code) 验证电子邮件验证码时

asp.net - ASP.NET 中的主皮肤文件

c# - 我如何从 xmlnodelist 中获取 xml 节点

每个 team_id 的 ASP.NET MVC 授权和角色

安卓宽度 :100% fix (website takeover issue)

mysql - Toad for MySQL 使用什么来更换皮肤?