Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using AssaBusiness;
- using System;
- using System.Collections.Generic;
- using System.Data.SqlClient;
- using System.Linq;
- using System.Web;
- using System.Web.Mvc;
- namespace MyBlog.Web.Controllers
- {
- public class NewsController : Controller
- {
- // GET: News
- public ActionResult Index()
- {
- // accedo al business layer
- Business b = new Business();
- if (b.ReadNews().Count() == 0)
- {
- b.CreateNews(new News() { Title = "Primo Articolo" });
- b.CreateNews(new News() { Title = "Secondo Articolo" });
- b.CreateNews(new News() { Title = "Terzo Articolo" });
- }
- // prendo i dati delle news e
- // li passo alla vista che li deve visualizzare
- return View(b.ReadNews());
- }
- public ActionResult Create()
- {
- // creo una notizia vuota
- News news = new News();
- // e la passo alla visualizzazione affinché l'utente
- // possa scrivere al suo interno
- return View(news);
- }
- // IN RISPOSTA AD UN SUBMIT DI UN FORM,
- // LA RICHIESTA AL SERVER AVVIENE SECONDO IL METODO "POST"
- // PER QUESTO DOBBIAMO ISTRUIRE IL CONTROLLER!!!
- [HttpPost] // Attributo -> aggiunge elementi che saranno di competenza del compilatore
- // Abbiamo anche la possibilità di verificare la protezione
- // contro gli attacchi CROSS-ORIGIN
- [ValidateAntiForgeryToken]
- // Il model binder prende ciò che l'utente ha
- // scritto nel form e crea un oggetto model (News nel nostro caso)
- // e lo passa alla action che dovrà gestirlo!
- // |
- // V
- public ActionResult Create(News news)
- {
- Business b = new Business();
- b.CreateNews(news);
- // probabilmente dopo la creazione
- // sarà preferibile rimandare l'utente alla pagina che
- // mostra l'elenco delle News
- return RedirectToAction("Index");
- }
- // action che propone all'utente la pagina per la modifica delle news
- // a questa action arriv al'id della news da modificare
- public ActionResult Edit(int id)
- {
- // accedo al business layer
- Business b = new Business();
- // recupero la news da modificare
- News news = b.ReadNews(id);
- // se per qualche motivo non ho potuto recuperare la news
- // ritorno alla pagina indice
- if (news == null) return RedirectToAction("Index");
- // altrimenti passo la news alla vista che deve
- // presentarla all'utente per la modifica
- return View(news);
- }
- [HttpPost]
- [ValidateAntiForgeryToken]
- public ActionResult Edit(News news)
- {
- // accedo al business layer
- Business b = new Business();
- // chiedo di aggiornare la news
- b.UpdateNews(news);
- // ritorno all'elenco delle news con
- // la news modificata!
- return RedirectToAction("Index");
- }
- public ActionResult Delete(int id)
- {
- // accedo al business layer
- Business b = new Business();
- // recupero la news da cancellare
- News news = b.ReadNews(id);
- // se per qualche motivo non ho potuto recuperare la news
- // ritorno alla pagina indice
- if (news == null) return RedirectToAction("Index");
- // altrimenti passo la news alla vista che deve
- // chiedere all'utente se effettivamente vuole cancellarla!
- return View(news);
- }
- [HttpPost]
- [ValidateAntiForgeryToken]
- public ActionResult Delete(News news)
- {
- try
- {
- // accedo al business layer
- Business b = new Business();
- // chiedo di eliminare la news
- b.DeleteNews(news.Id);
- }
- catch (SqlException ex)
- {
- }
- catch (Exception ex)
- {
- }
- // ritorno all'elenco delle news con
- // la news eliminata!
- return RedirectToAction("Index");
- }
- public ActionResult Details(int id)
- {
- // accedo al business layer
- Business b = new Business();
- // recupero la news da visualizzare
- News news = b.ReadNews(id);
- // se per qualche motivo non ho potuto recuperare la news
- // ritorno alla pagina indice
- if (news == null) return RedirectToAction("Index");
- // altrimenti passo la news alla vista che deve
- // mostrare all'utente la news!
- return View(news);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement