سلام
بنده در حد بسیار مبتدیانه مدل کلاسیک رو بلدم ...
کد مشابه ASP.Net WebForm
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
است،بنده هر چی زور زدم به طور گرافیکی نتونستم صفحهشو ببینم...
تا برنامه اجرا نشود امکان مشاهده صفحه وجود ندارد.
اگر شما ASP.Net WebForm را بلد نبودید گمانم ASP.Net MVC را زودتر یادمیگرفتید ولی الآن چون پیشفرض هایی در ذهن تان دارید دنبال همان گذینه ها و همان روش و همان زاویه دید میگردید...
این تیکه چی گار میکنه ؟ یعنی میگه ما اینجا با متد پست کار داریم ؟ یعنی به طور عملی داده های ارسالی یا همون متغیرها رو به تابع بعد از خودش هدایت میکنه یا تنها صرقا یه اعلانه ؟
میشه به طور ساده یه توضیحی در مورد تابع نوع اکشن ریزالت بدین ؟ چی کار میکنه این نوع تابع ؟
ما دو تا ورودی براش تعریف کردیم،ولی خب هیچ ها این تابع رو فراخوانی نکردیم و اون دو تا تابع رو به عنوان آرگومان بهش ندادیم ، یعنی بعدا تو بدنه برنامه از این تابع استفاده میکنیم ، یا همینجا تابع استفاده و به کار برده میشه؟
در MVC این توابع به Action معروف هستند، ما نیازی نیست آنها را فراخوانی کنیم، این Action ها با توجه به فیلترهایی که بالای آنها قید میشود (مانند HttpPost) خودکار در مقابل درخواست های رسیده اجرا خواهند شد.
پارامترهای ورودی Action ها هم بطور خودکار از مقادیر رسیده به برنامه پرخواهند شد.
کد نمونه کاملتر
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در کد فوق و در یک برنامه عادی، Action اولی برای مشاهده (GET) صفحه site.com/Home/Index خودکار اجرا خواهد شد.
و Action دوم برای submit دکمه save (همان POST) صفحه site.com/Home/Index خودکار اجرا خواهد شد.
یک تابع برای مشاهده و یک تابع برای ذخیره!
ActionResult هم یک کلاس پایه و معرف چیزی است که نتیجه اجرا کد شما برگردانده خواهد شد.
این میتواند برای دانلود یک فایل FileResult باشد و یا برای یک مشاده یک متن خام ContentResult باشد یا حتی یک string یا int عادی باشد، ولی ActionResult به علت کلاس پاسه بودنف معرف همه اینها خواهد بود و میتواند جای همه آنها عمل کند...
FileResult و ContentResult و... وراثت یا نمونه های عملی ActionResult هستند مانند تفاوت/شباهت "درخت" با "کاج" !
بیاین مثلا یه تکست باکس تعریف کنیم و متغیر اول رو بریزیم توش و نمایش بدیم
درخواستی (Request) که ماژول سخت افزاری شما میفرستد و درخواست شما دو درخواست مجزا هستند و شما همین طور نمیتوانید نتایج ارسال یک درخواست دیگر را مشاهده کنید.
مانند این است که شما به تلفنی تماس بگیرید و چیزی بگویید و من چند لحه بعدش تماس بگیرم و بپرسم شما چه گفته اید
کسی باید این بین دو تلفن پیام شما را در کاغذ مشترکی یادداشت کند تا بعد بتوانند به من بگویند شما که تماس گرفته بودید چه گفته ایذ
این کاغذ (مشترک بین همه درخواست ها) میتواند DataBase باشد و یا حداقل شی Application باشد.
نمونه کد ASP.Net WebForm
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
باید صفحه Refresh شود تا آخرین مقادیر رسیده را مشاهده کنید.
طبق همون فرم
Content-Length: 10
0123456789
تا حدودی!
HTTP یک قانون است یک پروتکل یک زبان، قواعد آن دقیق باید رعایت شود...
برخی قوانین متعدد و حالت متفاوت وجود دارد، مثلاً بجای اسم سایت در خط اول میتوان از هدر HOST استفاده کرد یا هدر ها ترتیب خاصی ندارند...
ولی رعایت برخی موارد فوق العاده ضروری هستند و حالت دیگری ندارد، مانند آنکه قبل از ارسال مقادیر یک خط خالی ضروری است و مقادیر هم حتماً باید در قالب name1=value1&name2=value2 ارسال شوند.
از اون اول ها یک سوال کوچک برام پیش آمده، این علی آقا دقیقاً کیه؟!
موفق باشید.