0

MVC 4 プロジェクトで Telerik コントロールを使用しています。具体的には、親/子グリッドが設定されたページがあります。子グリッドはタブストリップにあり、ユーザーが連絡先情報の変更を送信できるようにする別のタブがあります。

Telerik から使用したサンプル/デモは、http: //demos.telerik.com/aspnet-mvc/razor/grid/detailsajaxにあります

この時点で、部分的なビューを持つようにコードをセットアップし、タブでフォームを正常に表示することができました。メール用の 1 つのテスト フィールドを取得して、モデルに対して入力することができました。検証は機能しています。私の問題は、フォームが送信された後、子タブを離れて、既に表示されているタブ内にとどまるのではなく、部分ビューに基づいて新しいページを表示することです。

では、フォームが送信された後、現在の子タブ内にフォーカスを維持するにはどうすればよいでしょうか? 私は一般的にMVCにかなり慣れていないので、Telerikに固有のものでさえないかもしれません。アドバイスをお寄せいただきありがとうございます。以下にいくつかのコード スニペットを示します。

私のメインページからコードを表示します。

.Items(items =>
                {
                    items.Add().Text("CourseHistory").Content(
                            Html.Telerik().Grid<selStudentCourseHistory_Result>()
                                ...grid code snipped...
                                ...
                    items.Add().Text("Contact Information")
                        .LoadContentFrom("StudentSubmitContactInfo", "Student", new { studentid = "<#=StudentId #>" })

                                .Visible(true);
                             })

                       .ToHtmlString()

StudentSubmitContactInfo の部分ビュー

@using (Html.BeginForm())
{
    <div id="dvStudentContact">
        <table>
            <tr>
                <td><label>SC Email:</label></td>
                <td>@Html.TextBoxFor(s => s.scEmail)</td>
                <td></td>
                <td></td>
                <td>
                    <input type="submit" name="btnContactSubmit" value="Submit" id="btnContactSubmit"/>
                </td>
            </tr>
        </table>
    </div>

    @Html.ValidationSummary()
}

コントローラーからのコード

public ActionResult StudentSubmitContactInfo(int studentid)
    {

        StudentContactModel contactinfo = (from s in new LNLiteEntities().Students
                                                       where s.StudentId == studentid
                                                       select new StudentContactModel
                                                       {
                                                           scEmail = s.Email
                                                       }).FirstOrDefault();

        return PartialView(contactinfo);
    }

    [HttpPost]
    public ActionResult StudentSubmitContactInfo(StudentContactModel scm)
    {
        if (ModelState.IsValid)
        {
            return RedirectToAction("StudentSubmitContactInfo");
        }
        else {
            return PartialView(scm);
        }

    }
4

2 に答える 2