J'essaie d'appeler une méthode de service Web à partir d'un appel Jquery Ajax. La méthode accepte 3 paramètres du front-end et recherche l'enregistrement dans le DB.Comment passer un paramètre (email ID) à une fonction C# à partir de l'appel Jquery Ajax?
Je ne suis pas en mesure de concaténer les paramètres 3 correctement dans l'appel Ajax:
La méthode Web est:
public bool FindRecord(string Fname, string Lname, string Email)
{
string SQL = "SELECT * FROM contactsSource WHERE (first_name ='" + Fname + "') AND (last_name = '" + Lname + "') AND (email_address_work = '" + Email +"')";
OleDbDataReader reader = DataAccess.GetData(SQL);
if (reader.HasRows)
{
return true;
}
else
{
return false;
}
}
et l'appel Ajax, je suis en train est:
<script type="text/javascript">
$(document).ready(function() {
$('#btnDownload').click(function() {
var Fname = $('#Fname').val();
var Lname = $('#Lname').val();
var email = $('#Email').val();
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
data: '{"Fname":"' + Fname + '", "Lname":"' + Lname + '", "Email":' + email + '}',
url: "WebService.asmx/FindRecord",
dataType: "json",
success: function(result) {
alert(result.d);
},
error: function(result) {
alert("Due to unexpected errors we were unable to load data");
}
});
//$('.secondary').show(500);
});
});
</script>
Mais je continue à obtenir 500 erreur interne de serveur:
{"Message":"Invalid JSON primitive: (Email ID that I am passing).","StackTrace":" at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()
Grande Observation @Prutswonder, ça a marché :) Merci beaucoup, ceci est ma première expérience avec Jquery et Ajax – Vishal
@Vishal Soyez sûr de lire les autres réponses, vous le faites à la dure. Rappelez-vous, JSON est * Javascript * Notation d'objet. –
@Chris Certainement, j'essaierai aussi le chemin alternatif, en fait le genre de ma première affectation sur Jquery et Ajax. Merci BTW. – Vishal