MVC模型不更新View

时间:2015-12-23 11:22:18

标签: asp.net-mvc telerik

我有一个MVC应用程序,它也使用Telerik控件。 View有以下Kendo下拉列表:

                  <%= Html.Kendo().DropDownList()
      .Name("agents")
      .DataTextField("Text")
      .DataValueField("Value")
      .Enable(Model.IsAdmin)          
      .DataSource(source =>
           {
               source.Read(read => read.Action("GetUsers", "Schedule"));                                      
           })
       .Value(Model.SelectedUser)
      .Events(e => e.Select("SelectionChanged")) 

%GT;

当列表被更改时,它会触发事件SelectionChanged,它对控制器上的方法UpdateUser进行Ajax调用。

     function SelectionChanged(e) {
         var dataItem = this.dataItem(e.item.index());
         var passeddata = dataItem.Value;
         $.ajax({
             url: '/Schedule/UpdateUser',
             data: { user: passeddata },
             success: function () {
             }
         });

         var scheduler = $("#scheduler").data("kendoScheduler");
         scheduler.dataSource.read();
     }

在我的控制器上该方法更新模型并在会话中设置值,然后调用“计划操作”以重新加载视图。

    public ActionResult UpdateUser(string user)
    {
        _taskService.SelectedUser = user;
        Session["ScheduledUser"] = user;
        return View("Schedule");
    }

    public ActionResult Schedule()
    {
        ModelState.Clear();

        //Check to ensure the user is not logged out
        try
        {
            if (string.IsNullOrEmpty(Session["LoggedInUser"].ToString()))
                return RedirectToAction("LogOut", "Account");
        }
        catch (Exception) { RedirectToAction("LogOut", "Account"); }


        var timeOffset = Session["TimeOffset"].ToString();
        _taskService.TimeOffset = Convert.ToInt32(timeOffset);

        //Set the last viewed schedule   
        _taskService.IsAdmin = Convert.ToBoolean(Session["IsAdmin"].ToString());
        ViewData["PageName"] = "Schedule";
        if (string.IsNullOrEmpty(_taskService.SelectedUser))
        {
            _taskService.SelectedUser = Session["LoggedInUser"].ToString();
        }

        _taskService.UserWorkgroups = GetLoggedOnUserWorkgroups(_taskService.SelectedUser);

        Session["ScheduledUser"] = _taskService.SelectedUser;
        MessageHandler.NewNote("Loading schedule for user: " + _taskService.SelectedUser);
        UpdateModel(_taskService);
        return View(_taskService);
    }

我遇到的问题是在加载视图时会在我的模型上填充一个名为UserWorkgroups的条目并显示值:

          <h4 style="color: #30068b; text-align: Center;">Workgroups: <%:Model.UserWorkgroups%></h4>

下拉菜单更改后,应更新新用户的工作组并修改视图上的显示。我已经完成了代码并且它正在触发Schedule()操作结果并填充正确的用户和工作组,但视图不会更改它显示原始值的工作组。

此处的任何帮助表示赞赏。

0 个答案:

没有答案