Voy a ir a la derecha por delante y ofrecer una solución usando jQuery, lo que significa que tendrá que importar la biblioteca si no lo ha hecho ...
Importe la librería jQuery en su página de marca- arriba:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript"></script>
a continuación, crear otro * .js archivo de script (que llamo mío ExecutePageMethod
, ya que es el único método que se va a exponer a) y la importación:
<script type="text/javascript" src="/ExecutePageMethod.js" ></script>
Dentro del archivo que acaba de agregar, añadir el siguiente código (recuerdo tirando esto desde otro lugar, por lo que otra persona merece el crédito por lo que realmente):
function ExecutePageMethod(page, fn, paramArray, successFn, errorFn) {
var paramList = '';
if (paramArray.length > 0) {
for (var i = 0; i < paramArray.length; i += 2) {
if (paramList.length > 0) paramList += ',';
paramList += '"' + paramArray[i] + '":"' + paramArray[i + 1] + '"';
}
}
paramList = '{' + paramList + '}';
$.ajax({
type: "POST",
url: page + "/" + fn,
contentType: "application/json; charset=utf-8",
data: paramList,
dataType: "json",
success: successFn,
error: errorFn
});
}
A continuación, tendrá que aumentar su método de página de .NET con los atributos apropiados , tales como:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string MyMethod()
{
return "Yay!";
}
Ahora, dentro de su página de marcado, dentro de un bloque script
o de otro archivo de secuencia de comandos, puede llamar al método, así:
ExecutePageMethod("PageName.aspx", "MyMethod", [], OnSuccess, OnFailure);
Obviamente, necesitará implementar los métodos OnSuccess
y OnFailure
.
Para consumir los resultados, por ejemplo en el método OnSuccess
, puede usar el método parseJSON, que, si los resultados se vuelven más complejos (en el caso o devolver una matriz de tipos, por ejemplo) este método lo analizará objetos:
function OnSuccess(result) {
var parsedResult = jQuery.parseJSON(result.d);
}
Este código ExecutePageMethod
es particularmente útil ya que reutilizable, por lo que en lugar de tener que gestionar una llamada $.ajax
para cada método de la página es posible que desee ejecutar, sólo tiene que pasar la página, nombre del método y argumentos a este método.
La manera más fácil es, probablemente, enviar una solicitud AJAX al servidor con jQuery o un marco relacionado: http://api.jquery.com/jQuery.ajax/ por lo que en su bloque cancelar, cree la solicitud y envíela al servidor. Si necesitas más información, solo pregunta. – timothyclifford