MVC 没有像普通的旧 ASP.NET 那样的服务器控件。因此,不会对您的控件进行任何服务器处理。它们以您键入它们的方式呈现给客户端。主题不是您将在 MVC 中使用的东西,因为它们适用于 ASP.NET 服务器控件并且您不会在这里使用它们。也就是说,在呈现视图时,服务器会处理 HTML 助手。您需要使用 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)