从控制器调用报警框

本文关键字:调用 控制器 | 更新日期: 2023-09-27 18:26:27

我想做的是从控制器中调用一个警报对话框。原因是视图通过ajax调用来调用控制器,并且不会重新加载页面,因此无法比较tempdata中的任何新数据或其他数据。

这个动作的目的是检查报到的学生是否应该在那里。如果该课程不在他们的时间表中,那么权限bool将保持为false,并且应该弹出一个警告,说明该学生不在该课程中。

public ActionResult Action(string ccod, int sid)
    {
        IEnumerable<MvcStudentTracker.Databases.Course> result = from course in db.Courses
                    join sched in db.Schedules on course.CourseCode equals sched.ClassCode
                    where sched.StuID == sid
                    select course;
        bool permission = false;
        foreach (var item in result)
        {
            if (item.CourseCode == ccod)
                permission = true;
        }
        if (permission == false)
        {
            //call alert dialog box "This student is not signed up for this class"
        }
        return null;
    }

从控制器调用报警框

让我们更改您的操作,使其返回一个JsonResult对象。通过这种方式,我们可以在客户端轻松地操纵其结果。正如您已经使用javascript调用它一样,这是最好的解决方案。

因此,您的操作

public JsonResult Action(string ccod, int sid)
{
    IEnumerable<MvcStudentTracker.Databases.Course> result = from course in db.Courses
                join sched in db.Schedules on course.CourseCode equals sched.ClassCode
                where sched.StuID == sid
                select course;
    return Json(result.Any(x => x.CourseCode == ccod), JsonRequestBehavior.AllowGet);
}

以及您的视图

$.ajax({
    url: 'root/Action',
    cache: false,
    type: 'GET',
    data: {
        ccod: $('...').val()
        , sid: $('...').val()
    },
    dataType: 'json'
}).done(function (data) {
    if (data) {
        //ok!
    }
    else {
        //permission denied
    }
});

请注意,我已经更改了您的操作代码。你可能想复习一下,再修改一下。

将其添加到您的代码中:

Page.ClientScript.RegisterStartupScript(Page.GetType(), "alrt", "alert('Anything');", true);

像htis

 public ActionResult Action(string ccod, int sid)
        {
            IEnumerable<MvcStudentTracker.Databases.Course> result = from course in db.Courses
                        join sched in db.Schedules on course.CourseCode equals sched.ClassCode
                        where sched.StuID == sid
                        select course;
            bool permission = false;
            foreach (var item in result)
            {
                if (item.CourseCode == ccod)
                    permission = true;
            }
            if (permission == false)
            {
                //call alert dialog box "This student is not signed up for this class"
    Page.ClientScript.RegisterStartupScript(Page.GetType(), "alrt", "alert('This student is not signed up for this class');", true);
            }
            return null;
        }