ورود

View Full Version : کنترل نمایش اخبار



jaykob
یک شنبه 18 آبان 1393, 20:36 عصر
سلام

من برای نمایش اخبار در کنترلر News خودم اکشن زیر را نوشتم که لایه Services را به کنترلر تزریق کردم و لایه Repository را هم همینطور به Services تزریق کردم الان اخبار من به درستی نمایش داده می شه ولی می خواهم زمانی کسی در url دستکاری کرد مثلا id خبر رو تغییر داد یا هر موردی که در دیتابیس نیست redirect بشه به یک Action دیگه وقتی از try , catch استفاده می کنم در Action جواب نمی گیرم باید چه کاری انجام بدم ؟



public ActionResult Index(int id)
{
return View(NewsServ.GetSingleNews(id));
}



ممنون

rezaei_y
یک شنبه 18 آبان 1393, 23:02 عصر
من با از دستور زیر استفاده میکنم مشکلی نداره

موقع خطا یا نامعتبر بودن id

return RedirectToAction(MVC.Home.Index());

در دستور بالا ری دایرکت میشه به صفحه اصلی(از T4MVC استفاده شده)

jaykob
دوشنبه 19 آبان 1393, 08:24 صبح
من با از دستور زیر استفاده میکنم مشکلی نداره

موقع خطا یا نامعتبر بودن id

return RedirectToAction(MVC.Home.Index());

در دستور بالا ری دایرکت میشه به صفحه اصلی(از T4MVC استفاده شده)

سلام

یعنی این دستور شما رو باید در Catch گذاشت ؟ یا جای دیگه می شه بیشتر توضیح بدید

ممنون

hadi0x7c7
دوشنبه 19 آبان 1393, 09:22 صبح
سلام

من برای نمایش اخبار در کنترلر News خودم اکشن زیر را نوشتم که لایه Services را به کنترلر تزریق کردم و لایه Repository را هم همینطور به Services تزریق کردم الان اخبار من به درستی نمایش داده می شه ولی می خواهم زمانی کسی در url دستکاری کرد مثلا id خبر رو تغییر داد یا هر موردی که در دیتابیس نیست redirect بشه به یک Action دیگه وقتی از try , catch استفاده می کنم در Action جواب نمی گیرم باید چه کاری انجام بدم ؟



public ActionResult Index(int id)
{
return View(NewsServ.GetSingleNews(id));
}



ممنون

http://stackoverflow.com/questions/2948484/how-to-get-mvc-action-to-return-404
https://www.simple-talk.com/dotnet/asp.net/handling-errors-effectively-in-asp.net-mvc/

rezaei_y
دوشنبه 19 آبان 1393, 23:22 عصر
سلام

یعنی این دستور شما رو باید در Catch گذاشت ؟ یا جای دیگه می شه بیشتر توضیح بدید

ممنون

بله ابتدا بررسی کنید ببینید id مجاز است یا خیر در صورت بروز استثنا از دستور بالا استفاده نمایید