PDA

View Full Version : ریدایرکت از یک اکشن به اکشن دیگر



sara_t
پنج شنبه 14 اردیبهشت 1396, 19:15 عصر
سلام دوستان

من یه اکشن دارم که میخام از اکشنم به اکشن دیگه ای برم.در اخر دستورات اکشن اولی این کد رو مینویسم اما هیچ اتفاقی نمیفته.ممنون میشم راهنمایی کنید.

return RedirectToAction("test" );

من در ویو اکشن اول از post استفاده میکنم و وارد اکشن اول میشم میشه به این دلیل باشه؟

اَرژنگ
شنبه 16 اردیبهشت 1396, 08:19 صبح
http://stackoverflow.com/questions/129335/how-do-you-redirect-to-a-page-using-the-post-verb

sara_t
شنبه 16 اردیبهشت 1396, 11:15 صبح
ممنون
من از یه helper استفاده میکنم که عکسم رو آپلود کنم.زمانیکه اونو کامنت میکنم مشکلم حل میشه.اما من به اضافه کردن عکس نیاز دارم.در این حالت چطور میتونم ریدایرکت داشته باشم؟


@using (Html.BeginForm("AddFood", "Admin", FormMethod.Post, new { enctype = "multipart/form-data", id = "myUploadForm" }))
{

Moien Tajik
شنبه 16 اردیبهشت 1396, 13:37 عصر
شما باید در اکشن POST تون Redirect رو انجام بدید ، چون بعد از Submit شدن فرم وارد اکشن POST میشید .
RedirectToAction هم چند پارامتر داره که میتونید Action , Controller , RouteValues رو داخلش مشخص کنید :
return RedirectToAction("MyAction" , "MyController" );

sara_t
شنبه 16 اردیبهشت 1396, 14:46 عصر
بله در متد پست قرار دادم

ببینین کل کد من بصورت زیر هست که اگر اپلود عکس رو حذف کنم ریدایرکت انجام میشه در غیر اینصورت اتفاقی صورت نمیگیره


[HttpPost]
public ActionResult AddFood(AddFoodViewModel model, HttpPostedFileBase UploadImage)
{
List<System.Web.Mvc.SelectListItem> items = new List<System.Web.Mvc.SelectListItem>();

if (ModelState.IsValid)
{
model.Food.Image = UploadImage.FileName;
string path = Server.MapPath("~") + "FoodImages\\" + UploadImage.FileName;
UploadImage.InputStream.ResizeImageByWidth(500, path, Utility.ImageComperssion.Normal);
db.Foods.Add(model.Food);
db.SaveChanges();
items = model.List;
foreach (var item in items)
{
// if (item.Selected)
// {
int idstuf = Convert.ToInt32(item.Value);
int idfood = model.Food.Id;
db.AddFoodStuff(idstuf, idfood);
// }
}
// return MessageBox.Show("محصول با موفقیت ثبت شد", MessageType.Success);
return RedirectToAction("AddStuffAmount","Admin", new { foodid=model.Food.Id});
}
else
{
return View();
}


}

Moien Tajik
شنبه 16 اردیبهشت 1396, 16:22 عصر
بهترین کار این هستش که داخل کدتون Breakpoint بزارید و دیباگش کنید که دقیقا مشکل کجا هستش چون مشکل نمیتونه صرفا از " کد آپلود عکس " باشه .