我遇到了一个关键问题。可以请一些人建议。
我有一个.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
然后它给了我对象对象错误。
答案 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);
}
});
希望这有用并且有效!