سؤال

وأود أن (كما جاء في السؤال) ترغب في إجراء مكالمة متزامنة، ويفضل استخدام ASP.net AJAX.

ورمز للWebMethod يبدو مثل هذا:

[WebMethod]
public void SendMail(string name, string email, string subject, string body)
{
  MailMessage toSend = new MailMessage(email, address@domain.com, subject, body);
  var smtp = new SmtpClient();
  smtp.Send(toSend);
}

والحقول على وجهة النظر هي، وليس من المستغرب: الاسم، البريد الإلكتروني، والموضوع، والجسم

في محاولاتي للقيام بذلك لم أتمكن من الحصول على WebMethod. المرجع الخدمة في مكان، لذلك على الأقل لم أكن المسمار أن ما يصل.

وشكرا للمساعدة ...

هل كانت مفيدة؟

المحلول

هنا الذي يمكن العثور على مثال استدعاء أساليب غير المتزامن مع AJAX في ASP.NET MVC مع عناصر مثل

<% using (Ajax.Form("SendMail", new AjaxOptions { UpdateTargetId = "resultDiv" })) { %>

   <!-- Your form elements here... -->

<% } %>

ويمكنك الحصول على بارامس في طريقة تحكم واستدعاء خدمة ويب من هناك.

نصائح أخرى

وهذا ليس جوابا على سؤالك ولكن تحذير. كنت أبحث في هذا الأسلوب، والتفكير، "هم، وأنا أتساءل عما إذا كان يهتم ASP.NET إذا مكالمة إلى هذا الأسلوب على شبكة الإنترنت يأتي من موقع الويب الخاص بك أو في مكان آخر؟" بحث جوجل سريع يقودني إلى الاعتقاد بأن ليس هناك أي فحص للتأكد من بعض نضح لا يستخدم أساليب الويب الخاص بك لرغباته الخبيثة الخاصة (<لأ href = "http://softwaredevscott.spaces.live.com/ بلوق / الجهاز العصبي المركزي! 1A9E939F7373F3B7! 484.entry "يختلط =" نوفولو noreferrer "> وهنا بلوق وظيفة الحديث عن هذا ).

وهكذا، قبل ان تحصل على هذا العمل، قد ترغب في التفكير في طرق لمنع أي شخص من اختطاف webmethod لإرسال رسائل البريد الإلكتروني لي الفياجرا. لأنه إذا كان يمكنني الحصول على البريد الإلكتروني الفياجرا من موقع الويب الخاص بك، وأنا لن تكون سعيدة جدا معكم.

ووفقا لمكتبة MSDN

<اقتباس فقرة>   

في أجل خدمة ويب ليكون   الوصول إليها من السيناريو، ويجب أن يكون   خدمة ويب .asmx التي خدمة الويب   الفئة مؤهلة مع   السمة ScriptServiceAttribute.   أساليب فردية ليتم استدعاؤها من   يجب أن يكون مؤهلا النصي مع   WebMethodAttribute السمة.

http://msdn.microsoft.com/en-ca/ مكتبة / bb398998.aspx

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top