如何在asp.net MVC中以Ajax形式关闭自动完成功能

时间:2013-08-14 08:02:13

标签: asp.net asp.net-mvc asp.net-mvc-4 razor

我在剃刀中创建了一个Ajax表单。但我需要以整个形式关闭自动完成功能。在普通形式中,我可以传递html属性autocomplete = "off",但我找不到仅接受AjaxOptionshtmlAttributes(任何类型)的最佳重载

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的任何其他解决方案。?

3 个答案:

答案 0 :(得分:2)

试试这个,

@using (Ajax.BeginForm("Index", "Home", null, 
        new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "result" }, 
        new {autocomplete ="off"})
       )

答案 1 :(得分:1)

你不能传入动作名称的空字符串,然后只为路由值使用null吗?

如果要以这种方式传递路径值,可以从ViewContext中提取路径值。

答案 2 :(得分:0)

  1. 将模型传递给使用预先填充空格的电子邮件和密码属性进行查看。

    new UserEditModel {Email =“”,Password =“”};

  2. 以这种方式重置javascript中的相应输入:

    function resetInputs(){

    $('input[name="Password"]').val('');
    $('input[name="Email"]').focus(function() {
        $(this).val('');
    });
    

    }

  3. 注意:诀窍是清除密码输入并将事件处理程序(焦点上)放在电子邮件输入上,这样只有当用户开始输入他的电子邮件时才会清除它。如果您一次清除两个输入,它将无法工作。