0

我遇到了一个关键问题。有人可以提出建议吗?

我有一个.ascx页面,上面有一个弹出窗口,其中有一个 aspnet 按钮,单击时必须重定向到另一个页面。

我按照以下步骤操作:

  • 在打开颜色框后的 ascx 页面上,单击按钮会调用此函数。

    $.ajax({
         type: 'POST',
         url: "/HomeLoan/ProductConfirmationPop_SaveData.aspx/btnSaveData",
         contentType: 'application/json;charset=utf-8',
         dataType: 'json',
         success: function (response) {
                alert(response);
         },
         error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert(XMLHttpRequest + textStatus + errorThrown);
         }
      });
    
  • 在 aspx 页面上

    [WebMethod]     
    public static void  btnSaveData()
    {      
      function sahil();//this function i want to call after this function is being called               
    }
    

我收到 Json 解析错误。

我删除dataType:json并让它返回一个html/text然后它给我对象对象错误。

4

1 回答 1

0

如果您可以使用简单的 html 表单,在触发 onsubmit 时将值添加到隐藏输入,然后将其发布到将为您重定向的 Web 服务,这可能会容易得多。


反正:

您需要用另一个属性装饰您的 btnSaveData 方法,并将返回类型/参数更改为字符串(或任何其他适合您需要的类型):

    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    [WebMethod]
    public static string btnSaveData(string color)
    {
         // do sth with the color 

         return "/SaveSuccess.aspx";
    }

在js中:

    // retrieve the color as a string (this is up to you - I don't know what sort of ColorPicker you're using, so this is a placeholder)
    function saveColor()
    {
        var color = $('#myColorPicker').color.toString();

        // create the data for the webmethod,
        // the parameternames have to be the same as they are on the WebMethod
        var colorData = "{ color:'" + color + "'}";

        $.ajax({
             type: 'POST',
             url: "/HomeLoan/ProductConfirmationPop_SaveData.aspx/btnSaveData",
             contentType: 'application/json;charset=utf-8',
             dataType: 'json',
             data: colorData,
             success: function (response) {
                window.location.href = response.d; // redirect on success
         },
         error: function (response, text, error) 
         {
                alert(response + ' ' + text + ' ' + error);
         }
    });

希望这会有所帮助并且有效!

于 2013-06-04T14:53:04.623 回答