
下方記載のコードで、以下①、②、③に注意して部分ビュー更新したい時、どのように記述すればいいでしょうか。
※Chrome、IE、Firefox、Opera等主要ブラウザで正常に動かせるようにしたいです。
①1回のsubmitボタン押下でsubmit処理が勝手に2回走らないようにする
②submit完了後、連続でsubmitできるようにする(保存処理後画面をリロードなどしなくても続けて保存処理が出来る)
③textareaは投稿の機能と最新データ(投稿内容)表示を兼任しているので、保存処理後の再描画時は最新データを表示します。つまり、保存ボタン押下直前と押下後の画面表示は変わりません。
html
1<!-- 全体 --> 2<div id="all"> 3 <div id="comment"> 4 @Html.Partial("_Comment", model) 5 </div> 6</div> 7 8 9<!--"_Comment.cshtml"--> 10<form id="myform"> 11 <textarea id="commentValue" name="comment"> 12 </textarea> 13 <input id="save-button" type="submit" value="保存"> 14</form>
JavaScript
1$('#myform').submit(function (event) { 2 event.preventDefault(); 3 4 var url = "@Url.Action("Save", "Home")"; 5 var $form = $(this); 6 var $button = $form.find('submit'); 7 8 //textareaの入力内容取得 9 var commentData = $("#commentValue").val(); 10 11 $.ajax({ 12 url: url, 13 type: 'POST', 14 dataType: "html", // 適切か不明 15 data: {"comment": commentData},// 適切か不明 16 cache: false, 17 beforeSend: function(xhr, settings) {// 適切か不明 18 $button.attr('disabled', true);// 適切か不明 19 }, 20 }).done(function (data) { 21 $form[0].reset();// 適切か不明 22 $("#comment").html(data);// 適切か不明 23 $button.attr('disabled', false);// 適切か不明 24 alert('保存しました。'); 25 }).fail(function (jqXHR, textStatus, errorThrown) { 26 //他必要な記述がいまいちわからない 27 alert('保存処理に失敗しました。'); 28 }); 29 })
C#
1// HomeController 2[HttpPost] 3public ActionResult Save() 4{ 5 var comment = Request.Form["comment"]; 6 DB更新メソッド(comment); 7 8 var model = 最新データ取得メソッド; 9 return PartialView("_Comment", model); 10} 11``` 12 13わからない点が多すぎて恐縮ですが、ご教授宜しくお願い致します 14 15追記 以下開発環境です。 16Windows7 17Visual Studio Express 2015 for web 18.NET Framework 4.5.2 19MVC:ver.5.2.3.0 20主にクライアント側のスクリプトの記述の問題で、開発環境の記述は必要性は低いと思って省略してしまいました。 21申し訳ありません。 22 23AjaxHelper(Ajax.BeginForm, Ajax.ActionLink) などを使わない理由は特に無く、強いて言えば参考にしたソースを見よう見まねした時にAjaxHelperが使われていなかったことと、使い慣れていないことが理由です。razorも使ったことはありますが、使い慣れておらずよく理解できていません。





回答2件
あなたの回答
tips
プレビュー