我正在 MVC 4 项目中使用 Telerik 控件。具体来说,我有一个具有父/子网格设置的页面。子网格位于 Tabstrip 中,我有另一个选项卡,我希望允许用户提交更改他们的联系信息。
我从 Telerik 使用的示例/演示可以在这里找到- http://demos.telerik.com/aspnet-mvc/razor/grid/detailsajax。
在这一点上,我能够设置我的代码以获取部分视图并在选项卡中成功显示表单。我有一个电子邮件测试字段,我可以根据模型检索和填充它。验证正在工作。我现在的问题是,在表单提交后,它会离开子选项卡并根据部分视图打开一个新页面,而不是停留在已经打开的选项卡中。
那么,如何在表单提交后将焦点保持在当前子选项卡中?一般来说,我对 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);
}
}