16 Ekim 2016 Pazar
MVC - Action ve Model Attributes (Nitelikler)
Action Name (Action İsmi) : Action metodunun, oluşturulduğundan farklı bir isimlede çağrılması gerektiği durumlarda bu özellik ile action metodu parametrelerde tanımlanan isimle çağırabiliriz.
HttpPost (View'den controller'a veri gönderme ) : Tanımlandığı action metodun, view'daki formdan post işlemiyle ulaşılabilmesini sağlayan attribute'tur.
HttpGet (View'den controller'a veri gönderme ) : Tanımlandığı action metodun, view'daki formdan post işlemiyle ulaşılabilmesini sağlayan attribute'tur.
- Parametrede gönderilen değerler querystring'te (link üzerinde) bulunduğu için get işlemi kullanılır.
Bind (View'dan alınacak verilerilerin kontrolü) : Tanımlandığı model sınıfında view'dan verilerin hangilerinin alınıp alınmayacağı tanımlanır. Parametrede Include kullanırsanız, tanımlanan özelliklerdeki (property) veriler alınırken diğer property'lerdeki veriler alınmaz. Exclude kullanırsanız, tanımlanan özellikerin dışındaki veriler alırnırken, tanımlanan property'lerdi veriler alınmaz.
OutputCache (Önbellekleme) :
RequireHttps (Https protokolünü zorunlu kılma) :
13 Ekim 2016 Perşembe
MVC - Action ve Action Metodları - Kullanımı
Action Nedir ?
Asp.Net MVC projelerinde, kullanıcı arayüzleri (View'lar) içindeki bilgilerin controller sınıfları içinde yönetildiği metodlardır. Action metodlaryla View'e veri gönderme, View'ı çalıştırma, View'ın formu içindeki bilgileri alma ve veritabanına kaydetme gibi bir çok işlem gerçekleştirilmektedir.
Action metodların geri döndürebileceği veri türleri.
1.ActionResult :
public class PagesController : Controller
{
WEBSiteContext DBConnection = new WEBSiteContext();
public ActionResult Ekle()
{
return View();
}
}
2.RedirectResult : Sayfa yönlendirme
public class PagesController : Controller
{
WEBSiteContext DBConnection = new WEBSiteContext();
public ActionResult Ekle()
{
return View();
}
[HttpPost]
public RedirectResult Ekle (Pages NewData)
{
DBConnection.Pages.Add(NewData);
DBConnection.SaveChanges();
return Redirect("http://www.ahmetcelik.com.tr");
}
}
3.JsonResult : Json sonucu döndürme
public class PagesController : Controller
{
WEBSiteContext DBConnection = new WEBSiteContext();
public ActionResult Ekle()
{
return View();
}
[HttpPost]
public RedirectResult Ekle (Pages NewData)
{
DBConnection.Pages.Add(NewData);
DBConnection.SaveChanges();
return Redirect("http://www.ahmetcelik.com.tr");
}
[HttpPost]
public JsonResult ListeleJson()
{
var Pages = DBConnection.Pages.ToList();
return Json(Pages);
}
}
4. FileResult : Dosya dönderme
Not: En çok kullanılan geri dönüş türleri (Sınıflar) FilePathResult, FileStreamResult
public class PagesController : Controller
{
WEBSiteContext DBConnection = new WEBSiteContext();
public ActionResult Ekle()
{
return View();
}
[HttpPost]
public RedirectResult Ekle (Pages NewData)
{
DBConnection.Pages.Add(NewData);
DBConnection.SaveChanges();
return Redirect("http://www.ahmetcelik.com.tr");
}
[HttpPost]
public JsonResult ListeleJson()
{
var Pages = DBConnection.Pages.ToList();
return Json(Pages);
}
public FileResult PageInfo()
{
string _MeFilePath =Server.MapPath("/UploadFiles/xxx.pdf");
string _MeFileType = "application/pdf";
return new FilePathResult (_MeFilePath, _MeFileType);
}
}
5. RedirectToRouteResult : Farklı bir action metoda yönlendirme
public class PagesController : Controller
{
WEBSiteContext DBConnection = new WEBSiteContext();
public ActionResult Ekle()
{
return View();
}
[HttpPost]
public RedirectResult Ekle (Pages NewData)
{
DBConnection.Pages.Add(NewData);
DBConnection.SaveChanges();
return Redirect("http://www.ahmetcelik.com.tr");
}
[HttpPost]
public JsonResult ListeleJson()
{
var Pages = DBConnection.Pages.ToList();
return Json(Pages);
}
public FileResult PageInfo()
{
string _MeFilePath =Server.MapPath("/UploadFiles/xxx.pdf");
string _MeFileType = "application/pdf";
return new FilePathResult (_MeFilePath, _MeFileType);
}
public RedirectToRouteResult MeRedirect(Pages NewData)
{
DBConnection.Pages.Add(NewData);
DBConnection.SaveChanges();
return new RedirectToRouteResult (new RouteValueDictionary(new {action = "PageInfo", controller = "Pages"}));
}
}
6. PartialViewResult : Partial View Döndürme
public RedirectToRouteResult MeRedirect(Pages NewData)
{
DBConnection.Pages.Add(NewData);
DBConnection.SaveChanges();
return new RedirectToRouteResult (new RouteValueDictionary(new {action = "PageInfo", controller = "Pages"}));
}
6. PartialViewResult : Partial View Döndürme
public class PagesController : Controller
{
WEBSiteContext DBConnection = new WEBSiteContext();
public ActionResult Ekle()
{
return View();
}
[HttpPost]
public RedirectResult Ekle (Pages NewData)
{
DBConnection.Pages.Add(NewData);
DBConnection.SaveChanges();
return Redirect("http://www.ahmetcelik.com.tr");
}
[HttpPost]
public JsonResult ListeleJson()
{
var Pages = DBConnection.Pages.ToList();
return Json(Pages);
}
public FileResult PageInfo()
{
string _MeFilePath =Server.MapPath("/UploadFiles/xxx.pdf");
string _MeFileType = "application/pdf";
return new FilePathResult (_MeFilePath, _MeFileType);
}
public RedirectToRouteResult MeRedirect(Pages NewData)
{
DBConnection.Pages.Add(NewData);
DBConnection.SaveChanges();
return new RedirectToRouteResult (new RouteValueDictionary(new {action = "PageInfo", controller = "Pages"}));
}
public PartialViewResult MeContent (int ID)
{
var _MeContents = (from b in DBConnection.Contents where b.PID == ID select b).ToList();
return PartialView(_MeContents);
}
}
7. JavaScriptResult : Javascript döndürme
{
var _MeContents = (from b in DBConnection.Contents where b.PID == ID select b).ToList();
return PartialView(_MeContents);
}
}
7. JavaScriptResult : Javascript döndürme
MVC-5 Action'dan Farklı İsimde View Çağırma
KURAL : Bir view'ın çalıştırılabilmesi (View'a tarayıcı üzerinden erişilebilmesi ) için View'ın, Controller içersinde Action'nın tanımlanması gerekmektedir. Bu tanımla yapılmadı ise, oluşturacağınız view'ı çalıştıramazsınız.
KURAL : Tarayıcı üzerinden bir link çalıştırıldığında, linki ControllerAdı/ActionAdı şeklinde yazmanız gerekmektedir. Sunucuya gelen istekler öncelikle Controller'a ulaşacağı için, istemci tarafından (client-tarayıcıdan gelen) isteklerin hangi Controller'a (ControllerAdı) ve Controller içindeki hangi Action metoduna (ActionAdı) gideceği bilgisi, linkten alınmaktadır. Bu sebeple oluşturulan bir view'ı birdan fazla Action metoduna tanımlayıp taracı üzerinden çalıştırabiliriz.
public class ContentController : Controller
{
public ActionResult Listele()
{
return View(ContentData.Contents);
}
public ActionResult Ekle()
{
return View();
}
[HttpPost] //Attribute
public ActionResult Ekle(Content NewContent)
{
if (ModelState.IsValid)
{
ContentData.Contents.Add(NewContent);
return RedirectToAction("Listele");
}
else
{
return View();
}
}
public ActionResult Duzenle(int ID)
{
var content = ContentData.Contents.Where(o => o.ID == ID).FirstOrDefault();
return View(content);
}
[HttpPost]
public ActionResult Duzenle(Content content)
{
Content EditContent = ContentData.Contents.Where(o => o.ID == content.ID).FirstOrDefault();
EditContent.CName = content.CName;
EditContent.CSummary = content.CSummary;
EditContent.CInfo = content.CInfo;
EditContent.CDate = content.CDate;
EditContent.CNumber = content.CNumber;
return RedirectToAction("Listele");
}
public ActionResult Sil(int ID)
{
var content = ContentData.Contents.Where(o => o.ID == ID).FirstOrDefault();
return View(content);
}
[HttpPost]
public ActionResult Sil(Content content)
{
Content DeleteContent = ContentData.Contents.Where(o => o.ID == content.ID).FirstOrDefault();
ContentData.Contents.Remove(DeleteContent);
return RedirectToAction("Listele");
}
public ActionResult Detay(int ID)
{
var content = ContentData.Contents.Where(o => o.ID == ID).FirstOrDefault();
return View(content);
}
}
Kaydol:
Kayıtlar (Atom)