none
Последний шаг он Самый трудный, JSON RRS feed

  • Вопрос

  • Доброго времени суток

    Я использую MVC3

    Мне необходимо получить ответ, от контролера , вида 

     

    [{"Selected":false,"Text":"Дмитрий Петров","Value":"ИДА64865"},{"Selected":false,"Text":"Дмитрий Сидоров","Value":"ФДВ29501"},,{"Selected":false,"Text":"Дмитрий Иванов","Value":"МДА16828"}]


    А получаю

    [{"Selected":false,"Text":"Дмитрий","Value":"ИДА64865"},{"Selected":false,"Text":"Дмитрий","Value":"ФДВ29501"},,{"Selected":false,"Text":"Дмитрий","Value":"МДА16828"}]

     

    при этом код в контролере

     

     

     [HttpPost]
      public ActionResult _AjaxLoading(string text)
      {
          Thread.Sleep(1000);
          using (DataContext nw = new DataContext(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["db"].ConnectionString))
          {
              var products = nw.Clients.AsQueryable();
              if (text.HasValue())
              {
    
                  products = products.Where((p) => p.familiyru.StartsWith(text) || p.imyru.StartsWith(text));
              }
              return new JsonResult { Data = new SelectList(products.Select(p => p.imyru + " " + p.familiyru).ToList(), "UserCode", "imyru") };
          }
      }
    

     

    Как это можно решить?


    • Изменено DrakonoffNet 3 ноября 2011 г. 19:20 Уточнил
    3 ноября 2011 г. 18:37

Ответы


  • public ActionResult _AjaxLoading(string text)//передаёте один параметр, а надо два или один = имя + фамилия, в этом случае надо изменить лямбда выражение
      {
          Thread.Sleep(1000);
          using (DataContext nw = new DataContext(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["db"].ConnectionString))
          {
              var products = nw.Clients.AsQueryable();
              if (text.HasValue())
              {
    
                  products = products.Where((p) => p.familiyru.StartsWith(text) || p.imyru.StartsWith(text));//Тут делегат выбирает те объекты которые удовлетворяют только одному условию, так как параметр оди и тот.
              }
              return new JsonResult { Data = new SelectList(products.Select(p => p.imyru + " " + p.familiyru).ToList(), "UserCode", "imyru") };
          }
      }
    
    

    4 ноября 2011 г. 7:52
    Модератор

Все ответы

  • А в чём собственно проблема, то? Фамилию не получаете?

    4 ноября 2011 г. 5:23
    Модератор
  • да немогу понят как к имени добавить фамилию
    4 ноября 2011 г. 7:35
  • У Вас имя и фамилия два разных свойства или одно?
    4 ноября 2011 г. 7:42
    Модератор
  • да два разных свойства одной таблицы данных
    4 ноября 2011 г. 7:46

  • public ActionResult _AjaxLoading(string text)//передаёте один параметр, а надо два или один = имя + фамилия, в этом случае надо изменить лямбда выражение
      {
          Thread.Sleep(1000);
          using (DataContext nw = new DataContext(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["db"].ConnectionString))
          {
              var products = nw.Clients.AsQueryable();
              if (text.HasValue())
              {
    
                  products = products.Where((p) => p.familiyru.StartsWith(text) || p.imyru.StartsWith(text));//Тут делегат выбирает те объекты которые удовлетворяют только одному условию, так как параметр оди и тот.
              }
              return new JsonResult { Data = new SelectList(products.Select(p => p.imyru + " " + p.familiyru).ToList(), "UserCode", "imyru") };
          }
      }
    
    

    4 ноября 2011 г. 7:52
    Модератор
  • Спасибо за пояснение. Но мне это и было понятно . Меня больше интересовал вопрос о том как управлять значениями что попадают в JsonResult. Но ваше пояснение уверен приводиться.

    Решение нашел и его напишу немного позже

    4 ноября 2011 г. 9:38
  • Не забудьте выложить свое решение и отметить его. Спасибо.


    Для связи [mail]
    7 ноября 2011 г. 9:30
    Модератор