• ASP.NET Core 1 – قسمت نوزدهم
ASP.NET Core 1 – قسمت نوزدهم
1395/02/03 - 13:31:36 // MVC 5 & 6 // 0 نظر // 387 بازدید

در این قسمت باید امکان ایجاد رکورد جدید را بررسی نماییم . هنوز به دیتابیس وصل نیستیم ولی حداقل باید بتوان درRuntime به آرایه حاوی داده در سطح Application رکورد اضافه کنیم.

بسمه تعالی

ASP.NET Core 1 قسمت نوزدهم

در این قسمت باید امکان ایجاد رکورد جدید را بررسی نماییم . هنوز به دیتابیس وصل نیستیم ولی حداقل باید بتوان درRuntime به آرایه حاوی داده در سطح Application رکورد اضافه کنیم.

برای افزودن رکورد در سطح View به Form نیاز داریم. در ASP.NET MVC در سطح Controller یک Get Request نیاز است تا یک View حاوی فرم مورد نظر باز گردانده شود درون فرم Input Elements وجود دارد تا بتوان داده ها را از کاربر گرفت . این کنترلها می توانند TextBox یا DropDown یا .... باشند و دقت کنید که همگی باید دارای یک نام unique باشند. MVC از طریق نام این کنترلها با آنها رابطه خواهد داشت. در پایان همین فرم به یک HTTP Post نیاز دارد تا داده ها را به سمت سرور ارسال کند و یک Controller Action دیگر داده ها را گرفته و مثلن درون DataBase ذخیره خواهد کرد .

 
 
 

خوب حالا وقت آن است که سناریوی ایجاد رکورد را پیاده سازی کنیم.

در ابتدا چند Attribute جدید به Restaurant Entity اضافه خواهیم نمود. برای افزودن نوع غذاها از یک Enum استفاده خواهم کرد . خوب اگر به تصویر زیر نگاه کنید ، متوجه خواهید شد که به فرمی نیاز داریم که نوع رستوران و نام رستوران را بتواند از کاربر دریافت کند .

 
 

برای ادامه در Controller باید Action Method اضافه کنیم . این Action باید Create نامگذاری شود .

 
 

فعلن همین متد را ایجاد کنید و به سراغ ایجاد View بروید . برای View باز از Copy/Paste استفاده کنید . با تغییر نام Details View که کپی شده به Create.CSHTML مراحل را پی میگیریم . درون Create View اسامی را تغییر و سپس باید یک FORM ایجاد کنیم . برای ساخت Form میتوان از HTML FORM ها استفاده کرد و هیچ مشکلی هم وجود ندارد ، ولی من ترجیح میدهم از Html Helper ها استفاده کنم. مطابق تصویر زیر از یک Html.BeginForm یا همان Form Helper استفاده خواهم نمود . این Helper یک بده شبیه فرم ایجاد میکند که میتواند یک دسته از Element ها درون خود قرار دهد. در اصل این Helper یک Form Tag در سطح Html برای ما خواهد ساخت. ما در این مقاله قصد زیبا سازی و ... نداریم و فرم ما شکل ظاهری زیبایی نخواهد داشت . هدف فقط استفاده از قابلیتهای ASP.NET MVC در سطح فرم خواهد بود برای همین فقط دو Tag ساده برای ورود اطلاعات قرار داده و مراحل را پی می گیریم .

برای نام رستوران یک Textbox نیاز دارم که از یک TextBoxFor که یک Helper میباشد استفاده خواهم نمود . در این Helper باید مشخص کنیم که کدام عنصر از Model باید مورد استفاده قرار گیرد . این روند توسط Lambda Expression که Instant آن همیشه متصل به Model تعریف شده در View خواهد بود انجام میگردد. حتی میتوانم یک Label هم داشته باشم. خوب تا همینجا را Save و فرم Create را توسط آدرس /Home/Create صدا بزنید .

 
 

نتیجه به شکل زیر خواهد بود .

 
 

خوب حالا کاربر بتواند نوع رستوران را هم انتخاب کند . برای اینکار مراحل زیر را انجام دهید .

 
 

خوب کل تغییرات در تصویر بالا مشخص است . اولن به دلیل استفاده از Enum کل Entities را از طریق Using در View تعریف کردیم و برای Model هم از Restaurant استفاده شد . DropDonwListFor هم باید تشخیص دهد که با یک موجودیت مشابه یک Enum یا Array سر و کار دارد که در اینجا به دلیل استفاده از Enum از یک Helper دیگر درون آن استفاده کردیم . این Helper مشخص میکند که نوع CuisineType را باید به عنوان انتخابهای کاربر درون یک DropDown نمایش دهد . و بالاخره یک Input برای داشتن دکمه Save که کاربر بتواند با زدن آن فرم را Submit کند .

نتیجه به شکل زیر خواهد شد.

 
 

کاربر میتواند یک نام وارد کند ، نوع رستوران را انتخاب و دکمه Save را بزند . در حال حاضر با زدن Save هیچ اتفاقی نخواهد افتاد و در قسمت بعدی روال ثبت شدن را پیگیری خواهیم کرد . اجازه بدهید به HTML تولید شده توسط View نگاهی بیندازیم .

 
 

با نگاه به Html صفحه خواهید دید که یک Form ایجاد شده که نوع آن هم Post است و کنترلها را بر اساس Name میشناسد و میتوان با زدن Save فرم را Post نمود . DropDown هم که حاوی مقادری درون Enum بوده و نمایش داده خواهد شد .

 

در بخش بعدی روال post و ثبت اطلاعات را پیگیری خواهیم کرد.

علی کلاهدوزان
معرفی نویسنده : علی کلاهدوزان

سلام بر دوستان ،
شاید رایج است به عنوان پروفایل کاربر ، چند خطی راجع به خودم بنویسم ، ولی وضعیت کاری و سوابق من با یک جستجوی ساده در گوگل مشخص خواهد شد ، لذا سرتان را با مطالب بی مورد به درد نیاورم بهتر است . اگر نکته خاصی لازم بود بدانید در قسمت "ایلیا سافت در یک نگاه" به احتمال زیاد یافت خواهد شد . جزئیات بیشتر را سوال کنید ، آدرس ایمیل Ali@Kolahdoozan.com همیشه جوابگوی شماست .امیدوارم از مطالب سایت استفاده کرده باشید . شاد و پیروز باشید .

امتیاز به مطلب
           
نظرات کاربران
ارسال نظر