PDA

View Full Version : سوال: دسترسی به view از controller



sina_rzv2
چهارشنبه 27 شهریور 1392, 16:57 عصر
سلام
چطور میتونم از طریق controller محتوای تکست باکسی که در view هستش رو تغییر بدم؟

برای مثال من یک فرم درست کردم که بعد از فشردن دکمه اطلاعات فرم به آدرسی ایمیل میشه
میخوام بعد از این که این اطلاعات ایمیل شد همه ی تکست باکس ها خالی بشه

R_Rajaee_Rad
چهارشنبه 27 شهریور 1392, 19:06 عصر
با VIEWBAG
مثلا

توی کنترلر
Viewbag.text="dsfsf";

بعد میری توی ویو
text1.text=Viewbag.text


البته خط آخر شبه کده....دیگه خودت میدونی به کنترلرهای html چه طوری مقدار بدی

sina_rzv2
پنج شنبه 28 شهریور 1392, 07:55 صبح
مرسی از جوابتون ولی فکر نکنم از viewbag بشه استفاده کرد آخه من از textboxfor برای view استفاده کردم به صورت زیر
@Html.TextBoxFor(m => Model.Name)

حالا میخوام وقتی که کاربر روی دکمه ارسال کلیک کرد و اطلاعات ارسال شد این تکس باکس خالی بشه

hakim22
جمعه 29 شهریور 1392, 11:11 صبح
بعد از اینکه صفحه به کاربر نمایش داده میشود کنترلر هیچ کنترلی روی محتویات آن ندارد.
برای هر نوع تغییری در این سطح باید از جاوااسکریپت استفاده کنید.

تنها در صورتی میشود به اطلاعات صفحه ی view دسترسی پیدا کرد که اطلاعات آن Refresh شوند یا از طریق AJAX و روش های دیگر به کنترلر ارسال شوند.

sina_rzv2
شنبه 30 شهریور 1392, 11:27 صبح
خب بعد از این که کاربر روی دکمه ارسال کلیک میکنه صفحه رفرش میشه و اطلاعات توی ویو رو به کنترلر میفرستم و عملیات ارسال ایمل انجام میشه میخوام بعد از اینکه عملیات با موفقیت انجام شد تکس باکس ها پاک بشن
اگه از جاوا اسکریپت استفاده کنم امکان داره کاربر ولیدیشن هارو رعایت نکرده باشه بعد روی دکمه کلیک کنه و تکس باکس ها پاک بشه مجبور میشه دوباره از اول پر کنه
راه حل بهتری سراغ ندارید؟

hakim22
شنبه 30 شهریور 1392, 21:34 عصر
من نمیدونم شما با چه محیطی سایت طراحی می کنید اما در ASP,MVC همه ی Validation ها با جاوا اسکریپت و جیکوئری انجام میشه.

mvardin
چهارشنبه 03 مهر 1392, 09:45 صبح
عزیزم موقعی که save شد ، یه آبجکت خالی پاس بده به ویو ...
مثلا

var tempClass = new TempClass();
return View(tempClass);


البته من تازه یه هفته شروع کردم به MVC ولی به نظر باید این روش درست باشه!

sina_rzv2
چهارشنبه 03 مهر 1392, 11:16 صبح
مرسی دوست عزیز ولی با این کار کلاسی که تو مدل ساختیم خالی میشه ولی همچنان مقادیر تکست باکس ها باقی مونه

hakim22
چهارشنبه 03 مهر 1392, 19:28 عصر
دوست عزیز کاری که شما لازم دارید رو میشه با Ajax به راحتی انجام داد. با استفاده از دستور Ajax.BeginForm فرم خودتون رو بسازید. این روش اطلاعات رو بدون Refresh کردن به بانک ارسال میکنه.
در ادامه می توانید رویداد Success رو برای موفقیت ارسال مونیتور کنید.

لینک مطلب آموزشی (http://barnamenevis.org/showthread.php?416558-%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C-%D8%A8%D8%A7-Ajax-%D8%AF%D8%B1-ASP.MVC-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%AB%D8%A8%D8%AA-%D9%86%D8%B8%D8%B1%D8%AF%D9%87%DB%8C)

مهدی هادیان2
پنج شنبه 04 مهر 1392, 20:27 عصر
بسم الله الرحمن الرحیم
با سلام
اگه در کنترلر بعد از موفقیت از کد return View(); استفاده کنید؛ ویو رو به کاربر نمایش می ده و تمام اشیا در ویو خالی خواهند بود. همون حالتی که مد نظر شماست.
موفق باشید.