IE9でMVC3、c#を使用しています。コントローラーには、重要な次の2つのActionResulsがあります。
public ActionResult EditTrain(String trainid)
{
....
return PartialView(edittrain);
}
[HttpPost]
public ActionResult EditTrain(Train editrain)
{
....
DataContext.SubmitChanges();
return RedirectToAction("Edit", new { id = trainid });
}
部分ビューでは、次のコードがあります。
@model Models.EditTrain
@{
ViewBag.Title = "Training";
}
<h2>Train</h2>
@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "theForm" }))
{
@Html.ValidationSummary(false)
@Html.HiddenFor(model => model.ID)
<div class="display-label" style="font-weight: normal">
@Html.Label("ID:")
</div>
<div class="display-field">
@Html.DisplayFor(model => model.ID)
</div>
<div class="display-label" style="font-weight: normal">
@Html.Label("KitID:")
</div>
<div class="display-field">
@Html.DisplayFor(model => model.KitID)
</div>
<div class="editor-label">
@Html.Label("Inactive:")
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Inactive)
</div>
<div class="editor-label">
@Html.Label("Inactive Date:")
</div>
<div id='datepicker' class="editor-field">
@Html.EditorFor(model => model.InactiveDate)
</div>
......
<div style="clear:left;">
<br />
<p>
<input type="submit" id="submit" value="Submit" />
</p>
</div>
}
<script type="text/javascript">
$.ajaxSetup({ cache: false });
$(document).ready(function () {
$("#submit").click(function () {
$.ajax({
type: "POST",
url: url,
data: $('#theForm').serialize()
});
$("#stlist").load('@Url.Action("KitsEdit","Spr")' + '?id=' + '@Model.sprid');
});
});
上記のコードで、私が上記でやりたいことは、ユーザーが送信をクリックすると、次のアクションに進むのが好きだということです。
[HttpPost]
public ActionResult EditTrain(Train editrain)
次に、ビューに戻り、次のコードを実行します
$("#stlist").load('@Url.Action("KitsEdit","Spr")' + '?id=' + '@Model.sprid');
何が起こっているのかというと、それは上記を実行しますが、実行後です
$("#stlist").load('@Url.Action("KitsEdit","Spr")' + '?id=' + '@Model.sprid');
それは実行されます
[HttpPost]
public ActionResult EditTrain(Train editrain)
もう一度。
どうすればそれが行くのを防ぐことができますか
[HttpPost]
public ActionResult EditTrain(Train editrain)
.load()の後。