Asp.net mvc 4 剑道按钮应使用ASP.NET 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代码:

我正在使用ASP.NET MVC和剑道UI进行MVC。我有一个编辑按钮,应该显示剑道窗口中的当前记录。 这是我的按钮:

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