在MVC视图中有一个表单并使用HTML帮助程序给出以下代码:
@Html.TextBoxFor(m => m.FirstName, new { id = "firstName", maxlength = "50", @class = "form-input" })
有没有办法阻止此表单自动填充数据字段?我知道它是设计的,在大多数情况下是有帮助的,但在这种情况下,我希望能够关闭该功能。
澄清 - 如果我有一个带有此属性的ViewModel:
[Display(Name = "First Name")]
public string FirstName { get; set; }
据我所知,HTMLHelper TextBoxFor允许我使用强类型
m => m.FirstName
创建输入时。
没关系。但是,如果我在ViewModel中填充了数据,那么它也会在输入字段中显示这些数据,这是设计的,我明白了。
现在,想象一下你想要强类型方面的强度,但没有自动填充数据。
唯一的选择似乎是:
@Html.TextBox("myTextBox", "value goes here", new { @class = "form-control" })
在名称/ id值方面哪个很脆弱。我更喜欢TextBoxFor的强类型性质,但是如果没有自动显示ViewModel数据的话,就不能这样做。
答案 0 :(得分:1)
听起来你在这里谈论浏览器行为,所以你要关闭autocomplete
。您可以在每个输入的基础上使用它:
@Html.TextBoxFor(m => m.FirstName, new { ..., autocomplete = "off" })
或者你可以在整个表格上做到:
@Html.BeginForm(action, controller, FormMethod.Post, new { autocomplete="off" })
<强> 编辑: 强> 阅读您的评论似乎您正在使用值填充视图模型,并在渲染视图时查看它们。在这种情况下,答案很简单,在将模型传递给视图之前重置模型:
return ViewModel(new TModel());
答案 1 :(得分:0)
将viewmodel传递给控制器中的视图时,可以将这些属性设置为空值或null,以便在UI中为空文本框设置。