我在剃刀中创建了一个Ajax表单。但我需要以整个形式关闭自动完成功能。在普通形式中,我可以传递html属性autocomplete = "off"
,但我找不到仅接受AjaxOptions
和htmlAttributes
(任何类型)的最佳重载
好this page并未描述Ajax.BeginForm()
的所有17次重载。它只有11个定义。
我的函数调用好像是
using (Ajax.BeginForm(new AjaxOptions() { ... }))
{
...
}
我列出了一些重载,包含其定义中任何类型的htmlAttribute
。
Ajax.BeginForm(string actionName, object routeValues, AjaxOptions ajaxOptions, object htmlAttributes)
Ajax.BeginForm(string actionName, string controllerName, object routeValues, AjaxOptions ajaxOptions, object htmlAttributes)
Ajax.BeginForm(string actionName, string controllerName, RouteValueDictionary routeValues, AjaxOptions ajaxOptions, IDictionary<string,object> htmlAttributes)
Ajax.BeginForm(string actionName, RouteValueDictionary routeValues, AjaxOptions ajaxOptions, IDictionary<string,object> htmlAttributes)
AjaxBeginForm(string actionName, string controllerName, object routeValues, FormMethod method, object htmlAttributes)
请告诉我哪一个是我可以使用而没有任何其他功能效果。或者在autocomplete="off"
代码中添加form
的任何其他解决方案。?
答案 0 :(得分:2)
试试这个,
@using (Ajax.BeginForm("Index", "Home", null,
new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "result" },
new {autocomplete ="off"})
)
答案 1 :(得分:1)
你不能传入动作名称的空字符串,然后只为路由值使用null吗?
如果要以这种方式传递路径值,可以从ViewContext中提取路径值。
答案 2 :(得分:0)
将模型传递给使用预先填充空格的电子邮件和密码属性进行查看。
new UserEditModel {Email =“”,Password =“”};
以这种方式重置javascript中的相应输入:
function resetInputs(){
$('input[name="Password"]').val('');
$('input[name="Email"]').focus(function() {
$(this).val('');
});
}
注意:诀窍是清除密码输入并将事件处理程序(焦点上)放在电子邮件输入上,这样只有当用户开始输入他的电子邮件时才会清除它。如果您一次清除两个输入,它将无法工作。