0

したがって、コントローラーにデータを送信するJavaScriptコードがいくつかあります。

Javascript:

<script type="text/javascript">
        $(document).ready(function () {
            $("#newGrade").click(function () {
                var newGradeName = $("#newGradeName").val();
                var newGradeValue = $("#newGradeValue").val();
                var vSchoolID = $("#SchoolID").val();

                if (newGradeName != null && newGradeValue != null) {
                    $.ajax({
                        url: '@Url.Action("NewGrade", "School")',
                        data: { gradeName: newGradeName, gradeValue: newGradeValue, schoolID: vSchoolID },
                        type: 'POST',
                        traditional: true,
                        success: function (data) {
                            if (data.status)
                                window.location = data.route;
                        },
                        error: function () {
                            return false;
                        }
                    });
                }
            });
        });
    </script>

コントローラ:

  public ActionResult NewGrade(String gradeName, Int32 gradeValue, Guid schoolID)
    {
        School school = schoolRepository.GetByID(schoolID);
        school.Grades.Add(
            new Grade
            {
                GradeID = Guid.NewGuid(),
                Name = gradeName,
                NumericalValue = gradeValue
            });
        schoolRepository.Update(school);
        schoolRepository.Save();
        if (Request.IsAjaxRequest())
        {
            var json = new { status = true, route = Url.RouteUrl(new { action = "Edit", id = schoolID }) };
            return Json(json, JsonRequestBehavior.AllowGet);
        }
        return View();
    }

私の問題は、編集ページに戻りたい (おそらくページを更新するが、データを更新しない、またはページ全体を更新する) ことですが、編集ページは ID (schoolID) を取得します。ボタンを押して編集ページに移動すると、次のように表示されます。

<a href="@Url.Action("Edit", "School", new { id = Model.School.SchoolID })"><i class="icon-pencil"></i>&nbsp;Edit</a>
4

1 に答える 1

2

window.location.href何が起こるか試してみてください。

success: function(data) {
                        if (data.status)
                            window.location.href = data.route;
                    },

JSONこれは、次のようなアクション メソッドから応答を得ていると仮定すると、正常に機能するはずです。

{"status":"true","route":"/School/Edit/1"}

ここで、1 は新しいレコードの ID です。

于 2012-08-03T15:11:00.770 に答える