PDA

View Full Version : ردیختن اطلاعات یک فرم به دیتابیس با MVC , Entity Freamwork و Razor



ramin149
چهارشنبه 16 اسفند 1391, 16:25 عصر
با سلام من یک فرم دارم به صورت زیر .

<input type="text" name="name" />
<input type="submit" name="submit" />


حالا می خوام وقتی کاربر روی دکمه submit کلیک اطلاعات textbox را بخونه و در دیتابیس از طریق entity وارد کنه در دیتابیس . لطفا کمک کنید . من زیاد با entity و mvc آشنا نیستم .

hakim22
چهارشنبه 16 اسفند 1391, 21:27 عصر
فرض کنیم دستور submit قرار یک سفارش رو ثبت کنه . که مدل اون سفارش با اسم order درون فولدر Models قرار گرفته ( یک کلاس با نام order درون فولدر models بسازید و یک property مثلا با نام cost درونش ایجاد کنید)

این فرم درون یک View ساخته شده و اون View باید درون یک کنترل قبلا تعریف شده باشه . فرض کنیم اسم View شما AddOrder.cshtml باشه. یعنی یک کنترولر دارید با نام مثلا Orders که درونش یک متدی با عنوان AddOrder تعریف شده .

(درون فولدر Controller یک کنترولر جدید با نام orders ایجاد کنید. درون اون یک متدی با نام AddOrder ایجاد کنید. درون متد AddOrder کلیک راست کنید و دستور Add View رو بزنید. انتخابی رو تغییر ندید و تایید کنید)

فرم رو درون View ایجاد شده طراحی کنید.

بهترین راه برای تعریف فرم استفاده از دستور زیره :



@model myProojectNameSpace.Models.Order

@using (html.BeginForm("AddOrder","Order",FormMethod.Post))

{

@html.EditorFor(model=>model.cost)
<input type="submit" name="submit" />
}



حالا برگردید به کنترولر ---
برای اینکه اطلاعات برگشتی از submit خوانده بشه باید حالت httpPost رو رهگیری کنید.


[httpGet]
public ActionResult AddOrder()
{
return View();
}

[httpPost]
public ActionResult AddOrder(myProojectNameSpace.Models.Order newOrder)
{
--- save to database using EF

return View();
}




دقت کنید که HttpGet برای نمایش فرمه و httpPost به ASP میگه که مقادیر برگشتی از submit رو به این متد ارسال کن