如何在jquery和c#代码之间传递值?

时间:2015-11-02 07:25:00

标签: jquery asp.net ajax c#-4.0 asp.net-ajax

我写了jQuery为

     <script>
       $.backstretch([
    "../img/bg/19.jpg",
    "../img/bg/18.jpg",
  ], {
      fade: 1000,
      duration: 7000
  });
</script>

我需要制作这两个动态

   "../img/bg/19.jpg",
   "../img/bg/18.jpg",

为了使它们动态化,我在cs文件中创建了一个web方法

  [System.Web.Script.Services.ScriptMethod()]
  [System.Web.Services.WebMethod]
   public static List<string> GetImages()
   {
    SliderContext contextSlider = new SliderContext();

    string PageName = "Login Page";
    IEnumerable<_14Muslims.Domain.Entity.Slider> pType = contextSlider.SliderFetchAllEnabled(PageName);
    List<string> Images = new List<string>();
    foreach (Slider slider in pType)
    {
        Images.Add(slider.SliderImage.ToString());
    }

    return Images;
}

我试图在下面的代码行中调整它

    <script type="text/javascript">
      $.ajax({
      type: "POST",
      url: '/Login/Login.aspx/GetImages',
      data: JSON.stringify({ Image: $.trim(Image) }),
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function () {
      }
                  $.backstretch([
    "../img/bg/19.jpg",
    "../img/bg/18.jpg",
  ], {
      fade: 1000,
      duration: 7000
  });
  });
  </script>

我无法做到,请帮助我完成这项任务。 基本上我想在幻灯片放映中动态地从数据库中获取图像。

预期的代码应该是

<script>
        $.backstretch([
         foreach(item in <object>)
          {
            item.Images
          }   
        ], {
      fade: 1000,
      duration: 7000
  });
</script>

1 个答案:

答案 0 :(得分:0)

对代码进行一些修改可以使其正常工作。

GetImages() web方法不需要参数,因此不应在AJAX调用中传递任何参数。

data: '{}',

AJAX调用上的success函数需要至少有一个参数,表示来自Web方法的返回数据。

success: function (data) {
    $.backstretch(data.d, {
        fade: 1000,
        duration: 7000
    });
}

<强>结果

$.ajax({
    type: "POST",
    url: '/Login/Login.aspx/GetImages',
    data: '{}',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
        $.backstretch(data.d, {
            fade: 1000,
            duration: 7000
        });
    }
});