Asp.net CoreにAjaxヘルパータグのドキュメントへのリンクはありますか?私はasp.netコアでajaxを学ぼうとしていますが、ドキュメントが見つかりません。 asp.net mvcでは、@ Ajax.Formを使用し、次にAjaxでの作業にAjaxOptionsメソッドを使用します。何時間も検索したところ、このリンクが見つかりました。 https://dotnetthoughts.net/jquery-unobtrusive-ajax-helpers-in-aspnet-core/ このリンクには、asp.netコアでajaxを使用する方法があります。私はそれを自分のプロジェクトに実装し、成功しています。次に、そのドキュメントを検索しましたが、何も見つかりませんでした。ドキュメントへのリンクが欲しいのですが、ドキュメントについて誰か助けてください
ASP.NET Coreには、_@Ajax.Form
_のようなサーバー側ヘルパーはありません。同様の機能のために独自のタグヘルパーを作成することもできますが、これを行う人は見たことがありません。一般的な考え方は、クライアント側の動作が必要なときに実際のJavaScriptを記述することです。これらのことをサーバー側の魔法の背後に隠すことは、通常、最良のアイデアではありません。
_jquery-ajax-unobtrusive
_ は、クライアント側の動作を追加して、最終的なレンダリングページでさまざまな属性を検索し、標準フォームの上に機能を追加するJavaScriptパッケージです。したがって、これは完全にJavaScriptベースのソリューションになります。
残念ながら、それに関する文書はないようです。 そのソースコード を見て、何が可能か、何が不可能かを理解できます。
jquery-ajax-unobtrusive
_ドキュメントソース(免責事項:自分で機能をテストせずに)をざっと見てみると、これはサポートされているデータ属性であり、パッケージで使用できる機能であるようです。
data-ajax="true"
_ –フォームの機能を有効にします。data-ajax-update
_ –モードを使用して、AJAX結果で更新される要素のセレクター。data-ajax-mode
_ data-ajax-mode="before"
_ – Prepends 要素へのデータ。data-ajax-mode="after"
_ – Appends 要素へのデータ。data-ajax-mode="replace-with"
_ – Replaces 要素とデータ。data-ajax-confirm
_ –ユーザーに表示されるメッセージ confirm フォーム送信。data-ajax-loading
_ –ロード中に表示される要素のセレクター。data-ajax-loading-duration
_(デフォルト:0)–ロード要素の show / hide のアニメーション期間。data-ajax-method
_ – AJAXリクエストのHTTPメソッドを上書きできるようにします。data-ajax-url
_ – AJAXリクエストのURLを上書きできるようにします。data-ajax-cache
_ – _"true"
_以外の値に設定すると、 jQuery AJAX cache
parameter が無効になります。data-ajax-begin
_ –リクエスト開始前のコールバック関数(引数:xhr
)data-ajax-complete
_ –要求が完了したときのコールバック関数(引数:xhr
、status
)data-ajax-success
_ –リクエストが成功したときのコールバック関数(引数:data
、status
、xhr
)data-ajax-failure
_ –リクエストが失敗したときのコールバック関数(引数:xhr
、status
、error
)コールバック関数は、jQueryのbeforeSend
、complete
、success
、およびfailure
と同等です。外観から、関数へのJavaScriptオブジェクトパスを使用してコールバックを指定できます。
たとえば、_data-ajax-success="foo.bar.onSuccess"
_は関数foo.bar.onSuccess()
を呼び出します。つまり、foo
でオブジェクトwindow
を探し、そのbar
メンバーを取得して、onSuccess
を呼び出します。
https://github.com/Behrouz-Goudarzi/AjaxTagHelper
AjaxTagHelper
Aspnetコアでタグヘルパーを使用してリンクとajaxフォームを使用する簡単なソリューション
まず、AjaxTagHelperクラスをExtensionsフォルダーからプロジェクトにコピーします。
次に、wwwrootのjsフォルダーからAjaxTagHelper.jsファイルをコピーして、プロジェクトに追加します。
次に、以下を実行します。viewImportsファイルを開き、次のコードを追加します
@using AjaxTagHelper.Extensions
@using AjaxTagHelper
@using AjaxTagHelper.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, AjaxTagHelper
Action Ajaxを使用するには、タグの代わりに次のコードを追加します。
<ajax-action ajax-action="Delete" ajax-controller="Home" ajax-data-id="@Model.Id"
class="btn btn-danger btn-sm" ajax-success-func="SuccessDelete">
Delete
</ajax-action>
次のコードを使用して、AJAX=を使用してフォームをサーバーに送信します。
<div class="row">
<form id="frmCreate" class="col-sm-9">
<div class="row">
<div class="col-sm-4 form-control">
<input placeholder="Enter Name" name="Name" class="input-group" type="text" />
</div>
<div class="col-sm-4 form-control">
<input placeholder="Enter Family" name="Family" class="input-group" type="text" />
</div>
<div class="col-sm-4 form-control">
<input placeholder="Enter [email protected] " name="Email" class="input-group" type="email" />
</div>
</div>
</form>
<div class="col-sm-3">
<ajax-button ajax-controller="Home" ajax-action="Create" ajax-form-id="frmCreate" ajax-success-func="SuccessCreate"
class="btn btn-sm btn-success">
Create
</ajax-button>
</div>
</div>
最後に、表示に必要なスクリプトを追加し、以下のコードを確認します
<script>
function SuccessCreate(data) {
console.log(data);
$("#tbodyPerson").append(data);
}
function SuccessDelete(data) {
$("#tr" + data.id).fadeOut();
}
</script>
<script src="~/js/AjaxHelper.js"></script>