0

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

好吧,这个页面并没有描述所有 17 个重载的Ajax.BeginForm(). 它在那里只有 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..?

4

3 回答 3

2

试试这个,

@using (Ajax.BeginForm("Index", "Home", null, 
        new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "result" }, 
        new {autocomplete ="off"})
       )
于 2013-08-14T08:48:22.533 回答
1

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

如果您想以这种方式传递它们,您可以将路由值从 ViewContext 中提取出来。

于 2013-08-14T08:50:34.040 回答
0
  1. 使用预先填充了空格的电子邮件和密码属性传递模型以查看。

    新的 UserEditModel { 电子邮件 = " ", 密码 = " "};

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

    功能重置输入(){

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

    }

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

于 2016-05-21T06:25:25.100 回答