PDA

View Full Version : صفحه تماس با ما و پاک کردن مقدار قبلدها بعد از ثبت نظر



sara_t
یک شنبه 05 دی 1395, 14:13 عصر
سلام دوستان

دوستان من چطور میتونم در صفحه تماس با ما بعد از ثبت یه نظر کلیه فیلدها رو پاک کنم. که یه نفر نتونه چندبار یه نظر رو ذخیره کنه؟


@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);
}
}

Moien Tajik
یک شنبه 05 دی 1395, 15:08 عصر
1- با استفاده از jQuery :
http://jsfiddle.net/MoienTajik/2m37cq2n/16/

2- استفاده در اکشن بعد از ثبت موفق :

ModelState.Clear();

3- استفاده از :

return RedirectToAction();

sara_t
یک شنبه 05 دی 1395, 16:37 عصر
من از روش دوم استفاده کردم ولی هیچ اتفاقی نیفتاد.

روش سوم هم چطور میتونم استفاده کنم وقتی یه return دارم که میخام به کاربر نشون بده که نظر شما ارسال شده است.
روش اول هم با ajax اول صفحه مشکل داره.

اگر از ajax استفاده نکنم نمیتونم پیغامها رو بدرستی نشون بدم.اگرم استفاده کنم باز مشکل خودش رو داره نمیدونم چیکار کنم:ناراحت:
ممنون

Moien Tajik
یک شنبه 05 دی 1395, 22:56 عصر
میتونید به دکمه ثبت یه id بدید و با جاوااسکریپت ، چک کنید وقتی روی اون دکمه کلیک شد ، فرم رو خالی کنه .
و یا در Ajax که به اکشن میزنید ، در اکشن در صورت موفق بودن یک string مثل Ok برگردونید و View در Onsuccess چک کنید اگر data برابر با Ok بود ، فرم Reset بشه .