ColorBox Popup上的Html或Aspnet按钮在按钮单击时重定向到另一个aspx页面

时间:2013-06-04 10:23:44

标签: asp.net jquery

我遇到了一个关键问题。可以请一些人建议。

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

我按照以下步骤操作:

  • 在打开colorbox后的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然后它给了我对象对象错误。

1 个答案:

答案 0 :(得分: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);
         }
    });

希望这有用并且有效!