2015-08-28 2 views
0

У меня есть dropdownlist в моем представлении и загружает это выпадающее меню со значениями из контроллера. В случае изменения мне нужно передать данные контроллеру, после чего выпадающий список загрузился свежим. Но я хочу сохранить выбранное значение после сообщения на контроллер. Мой JQuery заключается в следующем:Сохранять выпадающее меню выбранное значение после сообщения контроллеру

$.ajax({ 
     url: "/TimesheetModels/GetUsersForTimesheet", 
     type: "Get", 
     success: function (data) { 
      for (var i = 0; i < data.length; i++) {     
       opt = new Option(data[i].First_Name, data[i].EmpId); 
       $('#ddlUsers').append(opt); //Load drodown list while page load 
      } 
     } 
    }); 

$('#ddlUsers').change(function() { 
     alert($(this).val()); 
     var empId = $(this).val(); 
     startDate = $('#calendar').fullCalendar('getDate').startOf('week'); 
     window.location.href = "/TimesheetModels/TimesheetApproval?selectDate=" + convertDate(startDate) + "&empId=" + empId; //Pass data to controller 
     alert(empId); // i get this alert before pass to controller 
     $('#ddlUsers').val(empId); 
    }); 

В контроллере у меня есть этот aciton,

public ActionResult TimesheetApproval(string SelectDate,string empId) 
     { 
      DateTime startDate; 
      if (!DateTime.TryParse(SelectDate, out startDate)) 
       startDate = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek); 

      int EmpId; 
      if (empId != null) 
       EmpId = Convert.ToInt32(empId); 
      else 
      { 
       EmpId = Convert.ToInt32(Session["EmpId"].ToString()); 
      } 

      string startDateCalendar = Convert.ToString(startDate.ToString("ddd MMM dd yyyy HH:mm:ss")) + " GMT+0530"; 
      ViewData["startDateCalendar"] = startDateCalendar; 

      DateTime endDate = startDate.AddDays(6); 


      List<TimesheetMatrix> _timesheetList = _timesheetDetailViewModel.GetAllProjectTasks(startDate, endDate, EmpId); 


      return View(_timesheetList); 
     } 

Может кто-нибудь помочь мне решить эту проблему?

+0

1. Это 'asp.net'? 2. Вы не отправляете на контроллер, который вы перенаправляете в браузер, хотя ваш JavaScript работает после перемещения, все потеряно, поскольку вся страница повторно запрашивается. Я бы предположил, что вы используете AJAX POST, аналогичный тому, который вы уже сделали, а именно: window.location.href' –

+0

Я использую MVC и хочу передать данные контроллеру – KaviSuja

+0

Да, это MVC, но MVC - это концепция. .. вы используете asp.net? –

ответ

0

вы должны сделать АЯКС пост то время как изменение выпадающего списка, как следующие: -

$('#ddlUsers').change(function() { 
     alert($(this).val()); 
     var empId = $(this).val(); 
     startDate = $('#calendar').fullCalendar('getDate').startOf('week'); 

    $.ajax({ 
     url: "/TimesheetModels/TimesheetApproval?selectDate=" + convertDate(startDate) + "&empId=" + empId, 
     type: "Get", 
     success: function (data) { 
      //Any logic 
     } 
    }); 

     alert(empId); // i get this alert before pass to controller 
     $('#ddlUsers').val(empId); 
    }); 

Таким образом, вы можете сохранить выпадающего меню.

+0

Я попробовал это .. теперь, значение dropdwon установлено. но данные страницы не загружаются из действия контроллера – KaviSuja

+0

, какие данные вам нужно обновить на странице? –

+0

Я обновляю вопрос своим действием в контроллере. пожалуйста, проверьте – KaviSuja

Смежные вопросы