11

Ok、

通常のasp.netでは、テーマを使用して、サイト全体のすべてのテキストボックスでオートコンプリートをオフにします。ただし、テーマの.skinファイルには何も機能していないようであるため、MVCではこれを実行できません。

.skinファイルにこれがあります:

<asp:TextBox runat="server" autocomplete="off" />

ただし、これはMVCの動作方法ではないため、もちろん、まったくレンダリングされません。とにかく、私がこの種のものを機能させることができる方法はありますか?私がやろうとしているサイトは大きすぎて、すべてのテキストボックスを変更したり、問題を解決するための新しいHTMLヘルパーを作成したりすることはできませんか?

誰かアイデアがありますか?

4

9 に答える 9

27

MVCには、従来のASP.NETのようなサーバーコントロールはありません。したがって、サーバー処理はコントロールで実行されません。それらは、入力したとおりにクライアントにレンダリングされます。テーマはASP.NETサーバーコントロールに適用され、ここでは使用しないため、MVCで使用するものではありません。とはいえ、HTMLヘルパーは、ビューがレンダリングされるときにサーバーによって処理されます。htmlプロパティのオーバーロードを使用して、実際のHTMLコントロールにautocomplete="off"を追加する必要があります。

@Html.TextBoxFor(x => x.Something, new { autocomplete="off" } )

または、asp.netサーバーコントロールでautocomplete = "off"を設定すると、実際のHTML属性がレンダリングされます。

編集:すべてのテキストボックスに影響を与える1つのオプションは、独自の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)
于 2011-03-11T15:04:04.853 に答える
14

回答者の皆さん、乾杯しますが、これらのソリューションでは、サイト内のすべてのフォームを編集する必要があります。私たちが行っているMVCの使用を見れば、理解できるでしょう。

とにかく私はこの方法を選びました、マスターページで私はこのスクリプトを追加しました:

<script language="javascript" type="text/javascript">
        $(document).ready(function () {
            try {
                $("input[type='text']").each(function(){
                               $(this).attr("autocomplete","off");
                            });
            }
            catch (e)
            { }
        });

    </script>

javascriptが無効になっている場合、これは無意味ですが、正直なところ、javascriptが無効になっている場合、ユーザーはサイトの半分を使用できなくなります。

于 2011-03-14T11:17:35.560 に答える
10

AFAIK、cssで行うことはできずautocomplete = off、html属性である必要があるため、すべてのテキストボックスに影響を与える可能性のあるものはありません。あなたができることの1つは、このようにフォームに属性を追加することです(現在のフォームのすべてのテキストボックスに対応します)

Html.BeginForm(action,controller, FormMethod.Post, new { autocomplete="off"})

BeginFormまたは、このhtml属性を内部的に追加するのと同様のカスタムヘルパー拡張メソッドを作成します。

于 2011-03-11T15:02:26.587 に答える
1

これを_Layout.cshtmlドキュメントの最後に追加するだけです

<script>
    $("input[type='text']").attr("autocomplete","off");
</script>
于 2016-07-26T22:00:29.230 に答える
1

autocomplete="disable-autocomplete"を使用します

autocomplete="off"はサポートされなくなりました。

于 2020-03-24T01:06:09.723 に答える
1

オフの代わりに@autocomplete='write-anything-instead-of-off'

@Html.TextBoxFor(model => model.FirstName, new { placeholder = "First Name", @class = "form-control", @id = "txtFirstName", @autocomplete = "new-FirstName"})
于 2020-07-01T16:13:03.043 に答える
0
@Html.TextBox("Address","",new { @class = "classname", autocomplete = "off" })
于 2015-05-27T04:41:41.550 に答える
0

ASP.net MVC HTML属性:type="text"がJQUERYコードで管理されています

@Html.TextBoxFor(model => model.FirstName, new {@id = "txtFirstName"})


<script language="javascript" type="text/javascript">
        $(document).ready(function () {
            try {
                $("input[type='text']").each(function () {
                    $(this).attr("autocomplete", "off-1");
                });
            }
            catch (e) { }
        });
    
    </script>
于 2020-07-01T16:17:32.150 に答える
0

次のjQueryコードを使用します

 $(document).ready(function() {
    $("form,input").attr("autocomplete","off");
 });
于 2020-07-29T16:52:37.723 に答える