Asp.net mvc 4 剑道按钮应使用ASP.NET MVC在剑道窗口中显示记录
我正在使用ASP.NET MVC和剑道UI进行MVC。我有一个编辑按钮,应该显示剑道窗口中的当前记录。 这是我的按钮:Asp.net mvc 4 剑道按钮应使用ASP.NET MVC在剑道窗口中显示记录,asp.net-mvc-4,kendo-asp.net-mvc,Asp.net Mvc 4,Kendo Asp.net Mvc,我正在使用ASP.NET MVC和剑道UI进行MVC。我有一个编辑按钮,应该显示剑道窗口中的当前记录。 这是我的按钮: @(Html.Kendo().Button() .Name("editButton") .HtmlAttributes(new { type = "button" }) .Content("Edit Record") .Events(ev => ev.Click("onClick")) ) 下面是JavaScript代码:
@(Html.Kendo().Button()
.Name("editButton")
.HtmlAttributes(new { type = "button" })
.Content("Edit Record")
.Events(ev => ev.Click("onClick"))
)
下面是JavaScript代码:
$("#editButton")
.bind("click", function () {
//alert("OK");
location.href = '@Url.Content("~/Students/StudentDetails/EditStudentRecord?StudentID=" + @ViewBag.url)';
//$("#studentWindow").data("kendoWindow").open();
});
此按钮应将id发布到此操作方法:
[HttpGet]
public JsonResult EditStudentRecord(int? StudentID)
{
Student student = new Student();
ViewBag.StudentID = new SelectList(db.Student, "StudentID", "UserName");
student = db.Student.Find(StudentID);
ViewBag.ShouldClose = false;
return Json(student, JsonRequestBehavior.AllowGet);
}
但我有错误,无法在窗口中获取记录。
提前谢谢。如果我理解您的意图,那么您似乎遇到了一些问题。下面是我将如何解决这个问题 将
editsudentrecord
端点更改为返回PartialViewResult
而不是JSON
,如下所示
[HttpGet]
public PartialViewResult EditStudentRecord(int? StudentID)
{
Student student = new Student();
ViewBag.StudentID = new SelectList(db.Student, "StudentID", "UserName");
student = db.Student.Find(StudentID);
ViewBag.ShouldClose = false;
return PartialView("_EditStudentRecord", student);
}
注意,您需要创建一个新的局部视图,在我的示例中称为“_editsudentrecord”
然后,我将创建一个剑道窗口,类似于以下内容:
@(Html.Kendo.Window()
.Name("edit-student-window")
.Title("Edit Student Record")
.Width(400)
.Modal(true)
.Visible(false)
.LoadContentFrom("EditStudentRecord", "StudentDetails", new { studentID = ViewBag.StudentID })
然后将按钮的JS更改为类似于此(注意,我可能会更改此函数的名称,但因为它是按钮中引用的名称,所以我将其保留)
你们有什么错误?现在我可以通过这个窗口编辑和保存记录,但不能关闭它。我想,当用户单击“保存”按钮时,窗口应关闭,用户将被重定向到StudentDetails.cshtml页面。您在模式中(在EditStudentRecord部分视图上)使用的是哪种表单?一个
Html.BeginForm()
或一个Ajax.BeginForm()
。我使用的是Html.BeginForm()。它正在工作,我可以在SQL Server中保存数据。我只想在表单成功更新/编辑并将数据保存在记录中时关闭表单。谢谢
function onClick() {
$('#edit-student-window').data('kendoWindow').open();
}