Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, bom dia.
A minha situação é essa. Preciso receber dois valores que vem de um arquivo javascript:
var ap36 = {
init: function () {
ap36.cad_cli();
},
cad_cli: function () {
$('#cad').submit(function (e) {
e.preventDefault();
var email = $('#email').val(),
pass = $('#password').val();
console.log(email, pass);
$.ajax({
url: "Cadastrar.aspx/CadastrarDados",
data: { email: email, pass: pass },
context: document.body
}).done(function () {
console.log('teste');
});
});
}
};
ap36.init();
os valores "email" e "pass" será enviados para esse método:
[System.Web.Services.WebMethod]
public static void CadastrarDados(string email, string pass)
{
DadosUsuarios du = new DadosUsuarios();
Usuarios us = new Usuarios()
{
Id = Guid.NewGuid(),
Nome = "Nova LOja",
Email = email,
Senha = pass,
};
du.Inserir(us);
}
Testei um script Ajax de exemplo e deu certo, mas nesse script que meu amigo me enviou para criar o site não vai de jeito nenhum. Sinceramente não entendo muito bem o que porque, pois me aventuro muito pouco no desenvolvimento web.
Aqui uns tutoriais q encontrei: https://social.msdn.microsoft.com/Forums/pt-BR/be5d4c12-e171-40e7-a472-abc6f4230ffc/enviar-valor-da-varivel-javascript-via-ajax-para-aspx-c?forum=aspnetpt
http://www.aspsnippets.com/Articles/Calling-ASPNet-WebMethod-using-jQuery-AJAX.aspx
Se puderem dar uma luz. Agradeço.
Tentei deste modo, mas não foi. Na verdade, os exemplos que fiz foi passando parametros string.
A pagina ASPX está assim:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Cadastrar.aspx.cs" Inherits="Cadastrar" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>AP36 - Imóveis</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div id="wrap">
<div id="header">
<ul>
<li>
<a href="index.html">Home</a>
<a href="cadastro.html">Cadastro</a>
<a href="#"></a>
</li>
</ul>
</div>
<form id="cad" action="#">
<label for="Email">Email:</label>
<input type="text" name="email" id="email" />
<label for="password">Senha</label>
<input type="password" name="password" id="password" />
<input type="submit" value="Cadastrar" />
</form>
</div>
<script src="bower_components/jquery/dist/jquery.min.js" type="text/javascript"></script>
<script src="js/ap36.js" type="text/javascript"></script>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Cadastrar : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[System.Web.Services.WebMethod]
public static void CadastrarDados(string email, string pass)
{
DadosUsuarios du = new DadosUsuarios();
Usuarios us = new Usuarios()
{
Id = Guid.NewGuid(),
Nome = "Nova Loja",
Email = email,
Senha = pass,
};
du.Inserir(us);
}
}
O arquivo JS que postei acima está separado do HTML.
var ap36 = {
init: function () {
ap36.cad_cli();
},
cad_cli: function () {
$('#cad').submit(function (e) {
e.preventDefault();
var email = $('#email').val(),
pass = $('#password').val();
console.log(email, pass);
$.ajax({
url: "Cadastrar.aspx/CadastrarDados",
data: { email: email, pass: pass },
context: document.body
}).done(function () {
console.log('teste');
});
});
}
};
ap36.init();
Eu realmente, não consigo entender. Os outros exemplos funcionam. Será que é por causa que o arquivo está separado?
Faz o teste, colocando o código script no html.
Pegue a mensagem de erro também, exemplo:
function Gravar() {
var _data = JSON.stringify({ Texto: sortedIDs });
$.ajax({
type: "POST",
url: "WebLista.aspx/Save_Ordem",
data: _data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
$("#Result").text(msg.d);
},
failure: function (response) {
alert(response.d);
}
});
}
Abraços,
Pode ser a URL, tem que confirmar se esta certa. Outro detalhe, se não me engano tem que usar variáveis do tipo object.
Tente:
public static void CadastrarDados(object email, object pass)
Abraços,