私はajax
リクエストを稼働させることができましたが、コントローラのアクションから戻ってきたレスポンスに基づいてフォームを終了したいと思います。私は私のURLを更新せず、私のアクションメソッドをヒットすることができる午前ajaxでサブミットした後にフォームを置き換えます
<form asp-controller="MyController" asp-action="Create" data-ajax" data-ajax-method="POST">
<div class="form-group">
<label asp-for="Email"></label>
<input asp-for="Email" class="form-control">
</div>
<div class="form-group">
<label asp-for="Comment"></label>
<input asp-for="Comment" class="form-control">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
:
コントローラのアクション:
public IActionResult Create(MyviewModel model)
{
if(!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var r = _context.Save(model);
if(r.IsError)
prepare error message and send them back
return OK(r.Data);
}
かみそりとにかく十分に話を、私はこれらの行で何かを持っています。私は要求を処理することができます。しかし、私はどのように応答を取得し、それに応じて行動するのですか?私はそれを集めたdata-ajax-success
と-failure
私の友人かもしれないが、私はどのように考えている。 、エラーの場合は
<div class="alert alert-success" role="alert">Comment successfully submitted</div>.
バックサーバーから来ているエラーを読み、ユーザーに警告:
は、私は基本的にのようなもので、成功したフォームを交換したいです。この場合、ユーザーが再試行できるようにフォームを保管してください。
私はこのjavascriptの世界では全く新しい、誰かが最小限の作業のソリューションを提供するか、正しい方向に私を指差しますか?
グレート:)そこには私の指とつま先を横切って、非jsの解決策がなければならないということがありました。よく分かっていれば、別の 'partilaView'ファイルを作成する必要があります。最初のフォームが必要になるため、親ビューが初めてロードされるときにどのように含めるのですか? –
別個のPartialViewを作成する必要はありません。あなたのビューを答えのかみそりで置き換えます。 Getでは、Viewを返しますが、ポストではPartialViewを返します。 –
私は答えを更新しました。あなたのビューがCreate.cshtmlと呼ばれ、コントローラと同じ名前のフォルダに存在すると仮定しています。 –