مره اخرى مع JQuery AJAX ASP.NET MVC .
اليوم سوف نتحدث في المقالة التالية عن POST .
وكيف يتم استخدامها في ASP.NET MVC .
POST
الشكل العام :
.post( url [, data ] [, success(data, textStatus, jqXHR) ] [, dataType ] )
هي على عكس Get التي كانت تجلب البيانات من مكتن معين (قاعدة بيانات الخ..).
Post ترسل البيانات إلى مكان محدد من صفحة الويب .
الكوج التالي هو كود ارسال Name and Address بشكل وهمي من ادارء إلى اخرى , عبر التابع التالي .
[HttpPost]
public string Submit(string Name, string Address)
{
if (!String.IsNullOrEmpty(Name) && !String.IsNullOrEmpty(Address))
//TODO: Save the data in database
return "Thank you " + Name + ". Record Saved.";
else
return "Please complete the form.";
}
بعد التاكد من عدم ارسال بيانات فارغه . يتم اظهار الرسالة التالية :
Thank you Name . Record Saved.
وفي حال كان لا يوجد بيانات , تظهر رساله تطلب بادخالها :
Please complete the form.
الكود التالي من اجل صفحة الويب :
<p>
Enter your name
<br />
@Html.TextBox("Name")
</p>
<p>
Enter your address
<br />
@Html.TextBox("Address")
</p>
<input type="button" value="Save" id="Save" />
<span id="msg" style="color:red;"/>
<script type="text/javascript">
$('#Save').click(function () {
var url = "Subscription";
var name = $("#Name").val();
var address = $("#Address").val();
$.post(url, { Name: name, Address: address }, function (data) {
$("#msg").html(data);
});
})
</script>

لنحاول هذا المره , ان يكون الكود اكثر احترافيه .
ونستخدم Form . كما في الشمل التالي :
يجب علينا تعريف الحقول التاليه و في كلاس منفصل .
public class Subscription
{
public string Name { get; set; }
public string Address { get; set; }
}
والتعديل على الكود , ليستقبل من كلاس Subscrption , .
[HttpPost]
public string SubmitSubscription(Subscription subs)
{
if (!String.IsNullOrEmpty(subs.Name) && !String.IsNullOrEmpty(subs.Address))
//TODO: Save the data in database
return "Thank you " + subs.Name + ". Record Saved.";
else
return "Please complete the form.";
}
كود الويب سكون مختلف قليلا , حيث انه سيتم استخدام From كما في الشكل التالي :
<form id="subscriptionForm" action="/Home/SubmitSubscription" method="post">
<p>
Enter your name
<br />
@Html.TextBox("Name")
</p>
<p>
Enter your address
<br />
@Html.TextBox("Address")
</p>
<input type="button" value="Save" id="Save" />
<span id="msg" style="color:red;"/>
</form>
@section Scripts{
<script type="text/javascript">
$('#Save').click(function () {
var form = $("#subscriptionForm");
var url = form.attr("action");
var formData = form.serialize();
$.post(url, formData, function (data) {
$("#msg").html(data);
});
})
</script>
}
تم اعطاء الفورم اسم subscriptionForm حتى يسهل قراءة البيلنات منه في كود الجافا سكريبت .
لن يختلف شي عندي في وقت التنفيذ والناتج كما في الكود السابق .
لكن هذه الطريقه جيدة من اجل قواعد البيانات ....
وشكرا ...