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);
}
}