从aspx简单的AJAX调用数据库

时间:2015-02-13 23:11:23

标签: c# asp.net ajax

因此在确定如何成功使用AJAX来调用方法和检索数据方面有点麻烦。我被要求这样做,不完全确定为什么,但我通常只是在Controller中的MVC环境中处理所有这些东西。但是现在我被要求在AJAX中这样做。我有一个ASPX文件,我只是想看看工作,所以我可以继续前进。到目前为止,没有任何堆栈溢出建议有所帮助。

这是我目前所拥有的:

.ASPX /源

<script type="text/javascript">
      $(document).ready(function () {

          $("#go").click(function () {
              $.ajax({
                  type: "GET",
                  url: "Default.aspx/ItemData",
                  processData: true,
                  data: {},
                  dataType: "json",
                  success: function () { alert("yay") },
                  error: function () { alert("nay") }
              });
          });

      });

 </script>

然后在我的Default.aspx.cs文件中,我有一个方法&#39; ItemData&#39;

[WebMethod]
public static NextCrew.Models.Item ItemData(string cookieID)
{
    Item item = new Item();
    item.name = "Fred";
    item.idx = 1;
    item.completed = 1;
    return item;
}

(Item很简单,一个带有3个属性的Model:Name(string),idx(int)和completed(int))

我很难弄清楚我在这里做错了什么。有人可以写一个我想要做的例子吗?只是一个简单的GET请求,我可以使用AJAX返回一个对象(一旦我完成测试,我希望能够连接到数据库,所以我需要它成为一个对象)。

我无法说出我做错了什么,但我有一些想法:

1)也许我在ajax中的网址格式不正确?

2)如果我有参数,我是否需要将任何内容传递给数据?

3)是正确的.cs文件中的get方法吗?

更新

我被告知我需要一个特殊的课来处理这个问题。我试着制作一个.asmx,而AJAX仍然没有被调用。希望有人看到我错过的错误。

<script>
        $(function () {

            $.ajax({
                type: "POST",
                contentType: "application/json",
                url: "WebService2.asmx/GetItems",
                data: "{}",
                dataType: 'Json',
                success: function (result) {
                    // alert(result.d);
                    $.each(result.d, function (index, ele) {

                        $("#Myddl").append("<option value='" + ele.value + "'>" + ele.text + "</option>");
                    })
                }
            });

        })
    </script>

的.asmx

public class WebService2 : System.Web.Services.WebService
    {

        [WebMethod]
        public List<Item2> GetItems()
        {
            //suppose data comes from database
            var result = new List<Item2>() { 
              new Item2{ text="one",value="one"},
              new Item2{ text="two",value="two"},
              new Item2{ text="three",value="three"}

            };
            return result;
        }

        public class Item2
        {
            public string text { get; set; }
            public string value { get; set; }
        }
    }

0 个答案:

没有答案