Сохранить результат запроса LINQ как объект JSON и передать его в javascript - PullRequest
0 голосов
/ 15 июня 2011

У меня есть запрос, который я добавил в список. Теперь мне нужно использовать его в javascript. Это делается в ASP.NET 3.5. Итак, мне нужно отправить его как объект JSON. Это то, что я сделал: (Я не уверен, что это правильный способ получения объекта JSON. Поправьте меня, если я ошибаюсь.

    List<NCDCPoint> dupli = (from n in CDC.NCDCPoints
                             where n.EVENT_TYPE_ID == et
                             where n.BeginDate == b
                             where n.EndDate == e
                             select n).ToList<NCDCPoint>();
  System.Web.Script.Serialization.JavaScriptSerializer oSerializer =
 new System.Web.Script.Serialization.JavaScriptSerializer();
   string sJSON = oSerializer.Serialize(dupli); 





} 

Вот так выглядит мой jquery

   $.ajax({
            type: "POST", url: "Data.aspx/CheckInsertRecord",
            data: "{EventType:'" + eventtype + "',BeginDate:'" + begindate + "'," +
                   "EndDate:'" + enddate+"' }",
            contentType: "application/json; charset=utf-8", dataType: "json",
            success: function (msg) {
            alert(msg.d);
            if(msg.d == "true")
        {
        Showduplicate();
        }
            }
        });

Итак, пожалуйста, дайте мне знать, что мне нужно делать дальше? Еще одна вещь - я уже возвращаю true или false обратно на страницу $ .ajax {} в aspx Так как же я должен отправить объект JSON?

Ответы [ 3 ]

0 голосов
/ 15 июня 2011

Измените ваш метод, чтобы он возвращал List<NCDCPoint>, и объявите тип возвращаемого значения как json:

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json]
public static List<NCDCPoint> CheckInsertRecord(String EventType, String BeginDate, String EndDate)
{
    NCDCPoint ncdc = new NCDCPoint();
    CEOSurveyDataContext CDC = new CEOSurveyDataContext();
    int et = Convert.ToInt32(EventType);


    DateTime b = Convert.ToDateTime(BeginDate);
   DateTime e = Convert.ToDateTime(EndDate);

        bool query = ( from n in CDC.NCDCPoints
                      where n.EVENT_TYPE_ID == et
                      where n.BeginDate == b
                      where n.EndDate == e
                      select n).Count()>0;

    return = (from n in CDC.NCDCPoints
                             where n.EVENT_TYPE_ID == et
                             where n.BeginDate == b
                             where n.EndDate == e
                             select n).ToList<NCDCPoint>();
} 
0 голосов
/ 15 июня 2011

Вы можете сортировать Объект с помощью JavascriptSerializer и отправить его.

var dupli= from n in CDC.NCDCPoints
                         where n.EVENT_TYPE_ID == et
                         where n.BeginDate == b
                         where n.EndDate == e
                         select n;

return new JavaScriptSerializer().Serialize(dupli);

И в успешном обратном вызове jquery ajax.

...
success:function(msg){
var data = $.parseJSON(msg.d);
//And you get your object
}
0 голосов
/ 15 июня 2011

Если вы только начинаете, то лучше использовать ASP.NET MVC с самого начала, это намного лучше, чем традиционные веб-формы ASP.NET.Когда вы делаете это, вы хотите создать метод действия, который возвращает JsonResult.Вот хорошая статья для начала.

http://msmvps.com/blogs/shahed/archive/2009/08/23/asp-net-asp-net-mvc-tips-json-handler-aspx-template-asynchronous-jquery-treeview-with-ashx-generic-handler-and-many-more.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...