صفحه تماس با ما و پاک کردن مقدار قبلدها بعد از ثبت نظر
سلام دوستان
دوستان من چطور میتونم در صفحه تماس با ما بعد از ثبت یه نظر کلیه فیلدها رو پاک کنم. که یه نفر نتونه چندبار یه نظر رو ذخیره کنه؟
@using (Ajax.BeginForm("ContactUs", "Home", new AjaxOptions { HttpMethod = "Post", Url = "/Home/ContactUs", }))
{
<section id="content">
<div class="container">
<div class="row directionrtl">
<div class="col-md-8 col-md-offset-2">
<h2>تماس با ما <small>لطفا فرم زیر را پر کنید</small></h2>
<hr class="colorgraph">
<div class="form-group">
@Html.TextBoxFor(p => p.Names, new { @class = "form-control input-lg", placeholder = "نام و نام خانوادگی" })
@Html.ValidationMessageFor(p => p.Names)
</div>
<div class="form-group">
@Html.TextBoxFor(p => p.Email, new { @class = "form-control input-lg", placeholder = "ایمیل" })
@Html.ValidationMessageFor(p => p.Email)
</div>
<div class="form-group">
@Html.TextBoxFor(p => p.Subject, new { @class = "form-control input-lg", placeholder = "موضوع" })
@Html.ValidationMessageFor(p => p.Subject)
</div>
<div class="form-group">
@Html.TextBoxFor(p => p.Messages, new { @class = "form-control input-lg", placeholder = "متن درخواست" })
@Html.ValidationMessageFor(p => p.Messages)
</div>
<div class="form-group">
@Html.Captcha(sampleCaptcha)
</div>
<div class="form-group">
<span class="CaptchaValidation"></span>
<input type="text" class="form-control input-lg" id="CaptchaCode"
name="CaptchaCode" placeholder="عبارت بالا را اینجا وارد کنید">
</div>
<hr class="colorgraph">
<div class="text-center"><button type="submit" class="btn btn-theme btn-block btn-md">ارسال پیغام</button></div>
</div>
</div>
</div>
</section>
}
کد موردنظر توی کنترلر:
[HttpPost]
[CaptchaValidation("CaptchaCode", "SampleCaptcha", "کد امنیتی صحیح نیست")]
public ActionResult ContactUs(Contact Contact)
{
ContactRepository blContact = new ContactRepository();
if (ModelState.IsValid)
{
if (blContact.Add(Contact))
{
return MessageBox.Show("پیغام شما با موفقیت ثبت شد", MessageType.Success);
}
else
{
//نا موفق
return MessageBox.Show("متاسفانه پیغام شما ثبت نشد", MessageType.Error);
}
}
else
{
//خطا مقداری
return MessageBox.Show(ModelState.GetErrors(), MessageType.Warning);
}
}
نقل قول: صفحه تماس با ما و پاک کردن مقدار قبلدها بعد از ثبت نظر
1- با استفاده از jQuery :
http://jsfiddle.net/MoienTajik/2m37cq2n/16/
2- استفاده در اکشن بعد از ثبت موفق :
ModelState.Clear();
3- استفاده از :
return RedirectToAction();
نقل قول: صفحه تماس با ما و پاک کردن مقدار قبلدها بعد از ثبت نظر
من از روش دوم استفاده کردم ولی هیچ اتفاقی نیفتاد.
روش سوم هم چطور میتونم استفاده کنم وقتی یه return دارم که میخام به کاربر نشون بده که نظر شما ارسال شده است.
روش اول هم با ajax اول صفحه مشکل داره.
اگر از ajax استفاده نکنم نمیتونم پیغامها رو بدرستی نشون بدم.اگرم استفاده کنم باز مشکل خودش رو داره نمیدونم چیکار کنم:ناراحت:
ممنون
نقل قول: صفحه تماس با ما و پاک کردن مقدار قبلدها بعد از ثبت نظر
میتونید به دکمه ثبت یه id بدید و با جاوااسکریپت ، چک کنید وقتی روی اون دکمه کلیک شد ، فرم رو خالی کنه .
و یا در Ajax که به اکشن میزنید ، در اکشن در صورت موفق بودن یک string مثل Ok برگردونید و View در Onsuccess چک کنید اگر data برابر با Ok بود ، فرم Reset بشه .