Asp.net Mvc Haber Sitesi

Bu konuyu okuyanlar

nisanci53

Öğrenci
Katılım
14 Mayıs 2012
Mesajlar
4
Reaksiyon puanı
0
Puanları
1
Merhabalar yazimiz boyunca asp.net mvc ile normal düzeyde bir haber sitesi geliştireceğiz sitede yorum sistemi,foto ve video galeriside olacak .anlatimlar asp.net normal düzeyde bildiğiniz varsiyalarak anlatilmiştir

yazida imla hatalari olabilir yer yer diyerekten yaziya başlayalim.

ilk olarak SQL Server Management Studio açip Haber diye veritabani oluşturuyoruz sonra , Haberkategori adiyla bir tablo oluşturalim



asders1.gif





Haber sitesi admin panelli olacak, şu adresten http://kilab.pl/simplea...leAdmin_kilab_pl.tar.gz admin panelini indiriyoruz
biz admin panel login girişi en sonda yapacağiz çünkü ikide bir karşimiza çikmasin diye

devam ediyoruz
Visal studio 2012 açiyoruz ve projeye, resimdeki gibi isim veriyoruz

asders3.gif



Burada İnternet Aplication Seçiyoruz

ader12.gif



Projenin içerisinde biri Dal ve diğeri Model olmak üzere iki tane class library projesi oluşturuyoruz ve birde admin adiyla areas olşturuyoruz.



Dal ,in içerisinde Yardimci diye class oluşturuyoruz ve kodlari giriyoruz, burada System.Configuration referansini eklemeyi onutmuyoruz,


asders4.gif



using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;

namespace Dal
{
public class mesveli
{

public static string con = System.Configuration.ConfigurationManager.AppSettings["connect "].ToString();


public static SqlDataReader ExecuteReader(string cmdText, CommandType type, SqlParameter[] prms)
{
SqlConnection oConnection = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connect "].ToString());
using (SqlCommand cmd = new SqlCommand(cmdText, oConnection))
{
cmd.CommandType = type;

if (prms != null)
{
foreach (SqlParameter p in prms)
{
cmd.Parameters.Add(p);
}
}
oConnection.Open();
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
}



public static object ExecuteScalar(String procedureName)
{
SqlConnection oConnection = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connect"].ToString());

SqlCommand oCommand = new SqlCommand(procedureName, oConnection);



oCommand.CommandType = CommandType.StoredProcedure;

object oReturnValue;

oConnection.Open();

using (SqlTransaction oTransaction = oConnection.BeginTransaction())
{

try
{

oCommand.Transaction = oTransaction;

oReturnValue = oCommand.ExecuteScalar();

oTransaction.Commit();

}

catch
{

oTransaction.Rollback();

throw;

}

finally
{

if (oConnection.State == ConnectionState.Open)

oConnection.Close();

oConnection.Dispose();

oCommand.Dispose();

}

}

return oReturnValue;

}



public static object ExecuteScalar(String procedureName, SqlParameter[] parameters)
{

SqlConnection oConnection = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connect"].ToString());

SqlCommand oCommand = new SqlCommand(procedureName, oConnection);



oCommand.CommandType = CommandType.StoredProcedure;

object oReturnValue;

oConnection.Open();



try
{

if (parameters != null)

oCommand.Parameters.AddRange(parameters);




oReturnValue = oCommand.ExecuteScalar();



}

catch
{



throw;

}

finally
{

if (oConnection.State == ConnectionState.Open)

oConnection.Close();

oConnection.Dispose();

oCommand.Dispose();

}



return oReturnValue;

}






public static int ExecuteNonQuery(string procedureName)
{

SqlConnection oConnection = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connect "].ToString());

SqlCommand oCommand = new SqlCommand(procedureName, oConnection);



oCommand.CommandType = CommandType.StoredProcedure;

int iReturnValue;

oConnection.Open();

using (SqlTransaction oTransaction = oConnection.BeginTransaction())
{

try
{

oCommand.Transaction = oTransaction;

iReturnValue = oCommand.ExecuteNonQuery();

oTransaction.Commit();

}

catch
{

oTransaction.Rollback();

throw;

}

finally
{

if (oConnection.State == ConnectionState.Open)

oConnection.Close();

oConnection.Dispose();

oCommand.Dispose();

}

}

return iReturnValue;

}



public static int ExecuteNonQuery(string procedureName, SqlParameter[] parameters)
{

SqlConnection oConnection = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connect "].ToString());

SqlCommand oCommand = new SqlCommand(procedureName, oConnection);



oCommand.CommandType = CommandType.StoredProcedure;

int iReturnValue;

oConnection.Open();

using (SqlTransaction oTransaction = oConnection.BeginTransaction())
{

try
{

if (parameters != null)

oCommand.Parameters.AddRange(parameters);



oCommand.Transaction = oTransaction;

iReturnValue = oCommand.ExecuteNonQuery();

oTransaction.Commit();

}

catch
{

oTransaction.Rollback();

throw;

}

finally
{

if (oConnection.State == ConnectionState.Open)

oConnection.Close();

oConnection.Dispose();

oCommand.Dispose();

}

}

return iReturnValue;

}






public static SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
}
public static SqlParameter MakeInParam(string ParamName, SqlDbType DbType, object Value)
{
return MakeParam(ParamName, DbType, 0, ParameterDirection.Input, Value);
}


public static SqlParameter MakeOutParam(string ParamName, SqlDbType DbType, int Size)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Output, null);
}


public static SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
SqlParameter param;
if (Size > 0)
{
param = new SqlParameter(ParamName, DbType, Size);
}
else
{
param = new SqlParameter(ParamName, DbType);
}
param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
{
param.Value = Value;
}
return param;
}



}
}


Web.config içeriği kodlar

<appSettings>
<clear />
<add key="Mailhost" value="mailhostgelecek" />
<add key="Mailad" value="mailadgelecek" />
<add key="Mailpass" value="şifregelecek" />
<add key="Siteyenile" value="6000" />
<add key="Mailport" value="587" />
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="connect" value="Data Source=; Initial Catalog=Haber;Integrated Security=SSPI;" />
<add key="webpages:Version" value="2.0.0.0" />
</appSettings>


Areas/Admin içerisine, indirmiş öldüğümüz dosya içerisindeki img,Js,Css bu üç dosyayı Atıyoruz
.
Views /shared içerisine new item deyip Bir tane Mvc 4 Layout Page, Yani Masterpage ekliyoruz ismine Yonetim diye adlandiriyoruz
gene indirmiş olduğumuz dosyadaki İndex.html kaynak kodlarını alıp Masterpage,ye ekliyoruz

aşağdakiler değişecek
<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />

<link rel="stylesheet" type="text/css" href="css/navi.css" media="screen" />
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> bunlar
Şe şekilde değişecek

<link href="~/Areas/Admin/css/navi.css" rel="stylesheet" />
<script src="~/Areas/Admin/js/jquery-1.7.2.min.js" type="text/javascript"></script>

<link href="~/Areas/Admin/css/style.css" rel="stylesheet" />

<div id="main">burası bizim contentplace alanımız olacak yanı içerik alanı diğer kısımlar genelde hep aynı kalacak şimdı <div id="main">içerisindekilerinin hepsini siliyoruz ve şu şekilde değiştiriyoruz <div id="main">@RenderBody()</div>

en son Areas son hali şu şekilde olacak

asders6.gif





Yonetim.cshtml kodlar

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl">
<head>
<meta http-*****="content-type" **********text/html; charset=utf-8" />
<meta name="author" **********Pawel 'kilab' Balicki - kilab.pl" />
<title>SimpleAdmin</title>

<link href="~/Areas/Admin/css/navi.css" rel="stylesheet" />
<script src="~/Areas/Admin/js/jquery-1.7.2.min.js" type="text/javascript"></script>

<link href="~/Areas/Admin/css/style.css" rel="stylesheet" />

<script src="~/Areas/Admin/js/jquery.validate.min.js" type="text/javascript"></script>
<script src="~/Areas/Admin/js/jquery.validate.unobtrusive.min.js" type="text/javascript"></script>
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(function () {
$(".box .h_title").not(this).next("ul").hide("normal");
$(".box .h_title").not(this).next("#home").show("normal");
$(".box").children(".h_title").click(function () { $(this).next("ul").slideToggle(); });
});
</script>
</head>
<body>
<div class="wrap">
<div id="header">
<div id="top">
<div class="left">
<p>Welcome, <strong>Pawel B.</strong> [ <a href="">logout</a> ]</p>
</div>
<div class="right">
<div class="align-right">
<p>Last login: <strong>23-04-2012 23:12</strong></p>
</div>
</div>
</div>
<div id="nav">
<ul>
<li class="upp"><a href="#">Haber Yönetimi</a>
<ul>
<li><a class="icon view_page" href="@Url.Action("Haberler", "Haber", new {Sayfano=0 })">Haberler</a></li>
<li><a class="icon report" href="@Url.Action("Yorumlar", "Haber", new {Sayfano=0 })">Haber Yorumları</a></li>
<li><a class="icon add_page" href="@Url.Action("Ekle","Haber")">Haber Ekle</a></li>
<li><a class="icon config" href="@Url.Action("Kategoriekle","Haber")">Haber Kategori Ekle</a></li>
<li><a class="icon view_page" href="@Url.Action("Kategoriler", "Haber")">Haber Kategorileri</a></li>
</ul>
</li>
<li class="upp"><a href="#">Manage content</a>
<ul>
<li>› <a href="">Show all pages</a></li>
<li>› <a href="">Add new page</a></li>
<li>› <a href="">Add new gallery</a></li>
<li>› <a href="">Categories</a></li>
</ul>
</li>
<li class="upp"><a href="#">Users</a>
<ul>
<li>› <a href="">Show all uses</a></li>
<li>› <a href="">Add new user</a></li>
<li>› <a href="">Lock users</a></li>
</ul>
</li>
<li class="upp"><a href="#">Settings</a>
<ul>
<li>› <a href="">Site configuration</a></li>
<li>› <a href="">Contact Form</a></li>
</ul>
</li>
</ul>
</div>
</div>

<div id="content">
<div id="sidebar">
<div class="box">
<div class="h_title">› Haberler</div>
<ul id="home">
<li class="b1"><a class="icon view_page" href="@Url.Action("Haberler", "Haber", new {Sayfano=0 })">Haberler</a></li>
<li class="b2"><a class="icon report" href="@Url.Action("Yorumlar", "Haber", new {Sayfano=0 })">Haber Yorumları</a></li>
<li class="b1"><a class="icon add_page" href="@Url.Action("Ekle","Haber")">Haber Ekle</a></li>
<li class="b2"><a class="icon config" href="@Url.Action("Kategoriekle","Haber")">Haber Kategori Ekle</a></li>
</ul>
</div>

<div class="box">
<div class="h_title">› Manage content</div>
<ul>
<li class="b1"><a class="icon page" href="">Show all pages</a></li>
<li class="b2"><a class="icon add_page" href="">Add new page</a></li>
<li class="b1"><a class="icon photo" href="">Add new gallery</a></li>
<li class="b2"><a class="icon category" href="">Categories</a></li>
</ul>
</div>
<div class="box">
<div class="h_title">› Users</div>
<ul>
<li class="b1"><a class="icon users" href="">Show all users</a></li>
<li class="b2"><a class="icon add_user" href="">Add new user</a></li>
<li class="b1"><a class="icon block_users" href="">Lock users</a></li>
</ul>
</div>
<div class="box">
<div class="h_title">› Settings</div>
<ul>
<li class="b1"><a class="icon config" href="">Site configuration</a></li>
<li class="b2"><a class="icon contact" href="">Contact Form</a></li>
</ul>
</div>
</div>
<div id="main">@RenderBody()</div>
<div class="clear"></div>
</div>

<div id="footer">
<div class="left">
<p>Design: <a href="http://kilab.pl">Pawel Balicki</a> | Admin Panel: <a href="">YourSite.com</a></p>
</div>
<div class="right">
<p><a href="">Example link 1</a> | <a href="">Example link 2</a></p>
</div>
</div>
</div>

</body>
</html>





Şimdide Admin Controllers sağ tiklayıp Index adında bir controller oluşturalım

public ActionResult Index()
{
return View();
}

Burda Index sağ tiklayıp bir view oluşturalim Index adında burası anasayfamız olacak çaliştirib değişikliği görelim

Şimdi habere kategori ekleme düzenleme silme işlemlerini yapacağız

Haber diye bir tane controller oluşturuyoruz
Ve hepsine birer tane view ekliyoruz resim şekil

asders7.gif



Şimdi haber katagoriekleme,de düzenlemeler olacak .ilk başta indirdiğimiz Yonetim paneli şablonunun içerisindeki index.html açip şu satiri buluyoruz
<div class="full_w">
<div class="h_title">Add new page - form elements</div>
<form action="" method="post">
<div class="element">
<label for="name">Page title <span class="red">(required)</span></label>
<input id="name" name="name" class="text err">
</div>
<div class="element">
<label for="category">Category <span class="red">(required)</span></label>
<select name="category" class="err">
<option value="0">-- select category</option>
<option value="1">Category 1</option>
<option value="2">Category 4</option>
<option value="3">Category 3</option>
</select>
</div>
<div class="element">
<label for="comments">Comments</label>
<input name="comments" value="on" checked="checked" type="radio"> Enabled <input name="comments" value="off" type="radio"> Disabled
</div>
<div class="element">
<label for="attach">Attachments</label>
<input name="attach" type="file">
</div>
<div class="element">
<label for="content">Page content <span>(required)</span></label>
<textarea name="content" class="textarea" rows="10"></textarea>
</div>
<div class="entry">
<button type="submit">Preview</button> <button type="submit" class="add">Save page</button> <button class="cancel">Cancel</button>
</div>
</form>
</div>
ve içindekilerinin hepsini kopyalayip Kategoriekle.cshtml ye ekliyoruz
Şimdi Katagori eklemek için vritabanimizdaki, haberkategori tablosunu modelliyeceğiz
Proje içerindeki Model sağ tiklayip Haberkategori diye bir tane class oluşturalim

Burda iki tane referans ekliyeceğiz, bunun için Model de sağtiklayip add reference
System.ComponentModel.DataAnnotations , System.Web.Mvc bu iki referansi ekliyoruz
Ve kodlari giriyoruz
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Web.Mvc;
namespace Model
{

[MetadataType(typeof(Dogrula))]
public class Haberkategori
{


public int Katid { get; set; }
public string Kategoriadi { get; set; }
public string Seo_keywords { get; set; }
public string Seo_description { get; set; }
public Nullable<bool> Aktif { get; set; }


public class Dogrula
{
[Required(ErrorMessage = "Kategori Adi Girmediniz")]
public string Kategoriadi { get; set; }

[Required(ErrorMessage = "seo keywords Girmediniz")]
public string Seo_keywords { get; set; }

[Required(ErrorMessage = "seo decriptions Girmediniz")]
public string Seo_description { get; set; }
}

public Haberkategori()
{
}
}
}

public class Dogrula
{
[Required(ErrorMessage = "Kategori Adi Girmediniz")]
public string Kategoriadi { get; set; }

[Required(ErrorMessage = "seo keywords Girmediniz")]
public string Seo_keywords { get; set; }

[Required(ErrorMessage = "seo decriptions Girmediniz")]
public string Seo_description { get; set; }
}
public class Dogrula içerinside zorunlu alanlar girilmemişse yazilacak hata mesajlari var,şimdi projeyi build edelim ve Dal da sağtiklayip solutiondan kutu içerisinden modeli işaretliyip referansi ekleyelim yoksa modeli görmiyecek
ayni şekilde Mvchaber dede dal ve modeli ekliyoruz

asders8.gif



şimdi Haber controller de ekleme işlemleri yapacağız

public ActionResult Ekle()
{
Model.Haberkategori ekle = new Model.Haberkategori();


return View();
}

[HttpPost]
public ActionResult Ekle(Model.Haberkategori ekle)
{
return View();
}

tekrar Kategoriekle.cshtm gidelim ve şü şekilde değiştirelim burda bize girilmemiş alanlarin kontrolu için ,iki tane javascript dosyasi gerekecek bunlar jquery.validate.unobtrusive.min.js ve jquery.validate.min.js bunlari Yonetim.cshtml ye ekliyoruzki tüm sayfalarda taninsin son şekli ile


@{
ViewBag.Title = "Kategoriekle";
Layout = "~/Areas/Admin/Views/Shared/Yonetim.cshtml";
}

[MENTION=185499]model[/MENTION] Model.Haberkategori

<div class="full_w">
<div class="h_title">Katagori Ekle</div>
[MENTION=108902]using[/MENTION] (Html.BeginForm("Kategoriekle", "Haber", FormMethod.Post))
{



<div class="element">
<label for="name">Kategori Adi <span class="red"> Zorunlu</span></label>
[MENTION=60305]HTML[/MENTION].TextBoxFor(model=>model.Kategoriadi)<br / [MENTION=60305]HTML[/MENTION].ValidationMessageFor(model=>model.Kategoriadi)
</div>
<div class="element">
<label for="name">Seo Description<span class="red"> Zorunlu</span></label>
[MENTION=60305]HTML[/MENTION].TextBoxFor(model=>model.Seo_description)<br / [MENTION=60305]HTML[/MENTION].ValidationMessageFor(model=>model.Seo_description)
</div>
<div class="element">
<label for="name">Seo Keywords<span class="red"> Zorunlu</span></label>
[MENTION=60305]HTML[/MENTION].TextBoxFor(model=>model.Seo_keywords)<br / [MENTION=60305]HTML[/MENTION].ValidationMessageFor(model=>model.Seo_keywords)
</div>

<div class="element">
<label for="comments">Kategori Durumu</label>
<label [MENTION=60305]HTML[/MENTION].RadioButtonFor(model=>model.Aktif,true) Aktif</label>
<label [MENTION=60305]HTML[/MENTION].RadioButtonFor(model=>model.Aktif,false) Pasif</label>
</div>



<div class="entry">
<button type="submit" class="add">Kaydet</button>
</div>
}
</div>





[MENTION=60305]HTML[/MENTION].ValidationMessageFor(model=>model.Seo_keywords) gibi olan satırlar girilmemiş alanlar için hata mesajlari veren kisimlardir
[MENTION=185499]model[/MENTION] Model.Haberkategori burda Model deki Haberkategori alanlarini kullanacağimiz için ekledik [MENTION=60305]HTML[/MENTION].TextBoxFor(model=>model.Seo_keywords) Html çiktisinda bu şu hale geliyor
<input class="input-validation-error" data-val="true" data-val-required="seo keywords Girmediniz" id="Seo_keywords" name="Seo_keywords" value="" type="text">

id="Seo_keywords" name="Seo_keywords” dikkat edilirse modeldeki Haberkategori alanindaki isimle ayni public string Seo_keywords { get; set; }

[MENTION=108902]using[/MENTION] (Html.BeginForm("Kategoriekle", "Haber", FormMethod.Post)) { } bu verileri

Haber controller deki Kategoriekle actionuna verileri gönderecek ilgili resimler

asders9.gif




asders10.gif




bir dahaki konuda verileri artik ekliyeceğiz


Şimdi verilerimizi artik veritabanina kaydedeceğiz Stored procedureleri yazalım

create proc [dbo].[haberkategorisayfala]
[MENTION=13147]yonetim[/MENTION] int,
@adet int

as
begin

if [MENTION=13147]yonetim[/MENTION]=1)
begin
select * from Haberkategori
end


else

begin
select top(@adet) * from Haberkategori
end
end

burda yonetim 1 se hepsini getirecek diyerinde ise @adet kadar getirecek




create proc [dbo].[Yhaberkategorino_getir]

[MENTION=114353]kati[/MENTION]d int

as
begin


select * from Haberkategori where Katid [MENTION=114353]kati[/MENTION]d and Katid [MENTION=114353]kati[/MENTION]d



end


***********************************************************************************
create proc [dbo].[YHaberkategori_duzenle]

[MENTION=114353]kati[/MENTION]d int,
[MENTION=62256]kate[/MENTION]goriadi nvarchar(100),
[MENTION=73588]Seo[/MENTION]_keywords nvarchar(100),
[MENTION=73588]Seo[/MENTION]_description nvarchar(100),
[MENTION=136453]aktif[/MENTION] bit

as
begin
update Haberkategori set Kategoriadi [MENTION=62256]kate[/MENTION]goriadi,Seo_description [MENTION=73588]Seo[/MENTION]_description,Seo_keywords [MENTION=73588]Seo[/MENTION]_keywords
,Aktif [MENTION=136453]aktif[/MENTION] where Katid [MENTION=114353]kati[/MENTION]d

End

**********************************************************************
create proc [dbo].[Haberkategorisil]

[MENTION=114353]kati[/MENTION]d int
as
begin

delete Haberkategori where Katid [MENTION=114353]kati[/MENTION]d

end


************************************************************************
create proc [dbo].[YHaberkategori_ekle]


[MENTION=62256]kate[/MENTION]goriadi nvarchar(100),
[MENTION=73588]Seo[/MENTION]_keywords nvarchar(100),
[MENTION=73588]Seo[/MENTION]_description nvarchar(100),
[MENTION=136453]aktif[/MENTION] bit

as
begin
insert into Haberkategori (Kategoriadi,Seo_keywords,Seo_description,Aktif)
values [MENTION=62256]kate[/MENTION]goriadi [MENTION=73588]Seo[/MENTION]_keywords [MENTION=73588]Seo[/MENTION]_description [MENTION=136453]aktif[/MENTION])

end

******************************************************************************************************

şimdide dal da sağt iklayip Kategoriislem diye bir tane class oluşturalim

ve şunlari girelim

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;

namespace Dal
{
public static class Kategoriislem
{

public static void Kategoriekle(string storeproc, Model.Haberkategori ekle)
{

SqlParameter[] parametre = new SqlParameter[4]
{

Dal.Yardimci.MakeInParam( [MENTION=62256]kate[/MENTION]goriadi",SqlDbType.NVarChar,ekle.Kategoriadi),
Dal.Yardimci.MakeInParam( [MENTION=73588]Seo[/MENTION]_description",SqlDbType.NVarChar,ekle.Seo_description),
Dal.Yardimci.MakeInParam( [MENTION=73588]Seo[/MENTION]_keywords",SqlDbType.NVarChar,ekle.Seo_keywords),
Dal.Yardimci.MakeInParam( [MENTION=136453]aktif[/MENTION]",SqlDbType.Bit,ekle.Aktif),

};

Dal.Yardimci.ExecuteNonQuery(storeproc, parametre);
}


public static void Kategoriduzenle(string storeproc, Model.Haberkategori duzenle)
{

SqlParameter[] parametre = new SqlParameter[5]
{
Dal.Yardimci.MakeInParam( [MENTION=114353]kati[/MENTION]d",SqlDbType.Int,duzenle.Katid),
Dal.Yardimci.MakeInParam( [MENTION=62256]kate[/MENTION]goriadi",SqlDbType.NVarChar,duzenle.Kategoriadi),
Dal.Yardimci.MakeInParam( [MENTION=73588]Seo[/MENTION]_description",SqlDbType.NVarChar,duzenle.Seo_description),
Dal.Yardimci.MakeInParam( [MENTION=73588]Seo[/MENTION]_keywords",SqlDbType.NVarChar,duzenle.Seo_keywords),
Dal.Yardimci.MakeInParam( [MENTION=136453]aktif[/MENTION]",SqlDbType.Bit,duzenle.Aktif),

};

Dal.Yardimci.ExecuteNonQuery(storeproc, parametre);
}

public static List<Model.Haberkategori> Kategorinogetir(string storeproc, int Katid)
{
SqlParameter[] parametre = new SqlParameter[1]
{
Dal.Yardimci.MakeInParam( [MENTION=114353]kati[/MENTION]d",SqlDbType.Int,Katid),
};

List<Model.Haberkategori> liste = new List<Model.Haberkategori>();


using (var reader = Yardimci.ExecuteReader(storeproc, CommandType.StoredProcedure, parametre))
{
liste = reader.MapToList<Model.Haberkategori>();
}


return liste;
}
public static List<Model.Haberkategori> Kategorisayfala(string storeproc,int yonetim, int adet)
{
SqlParameter[] parametre = new SqlParameter[2]
{
Dal.Yardimci.MakeInParam( [MENTION=13147]yonetim[/MENTION]",SqlDbType.Int,yonetim),
Dal.Yardimci.MakeInParam("@adet",SqlDbType.Int,adet),

};

List<Model.Haberkategori> liste = new List<Model.Haberkategori>();


using (var reader = Yardimci.ExecuteReader(storeproc, CommandType.StoredProcedure, parametre))
{
liste = reader.MapToList<Model.Haberkategori>();
}


return liste;
}

public static void Kategoril(string storeproc, int katid)
{

SqlParameter[] parametre = new SqlParameter[1]
{
Dal.Yardimci.MakeInParam( [MENTION=114353]kati[/MENTION]d",SqlDbType.Int,katid),


};

Dal.Yardimci.ExecuteNonQuery(storeproc, parametre);
}
}
}




Burada Dal.Yardimci.ExecuteNonQuery(storeproc, parametre); bu şekilde yaptikki
Foto galeri,video galeri dede kullanabilelim kategori işlemlerinde hep buradan yapilacak


Ve Haber Controller

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Mvchaber.Areas.Admin.Controllers
{
public class HaberController : Controller
{


public ActionResult Ekle()
{



return View();
}



public ActionResult Haberler(int Sayfano)
{

return View();
}
public ActionResult Kategoriler()
{
List<Model.Haberkategori> liste = Dal.Kategoriislem.Kategorisayfala("haberkategorisayfala", 1, 0);
return View(liste);
}
public ActionResult Yorumlar()
{
return View();
}
public ActionResult Kategoriekle()
{
Model.Haberkategori ekle = new Model.Haberkategori();
return View();
}
[HttpPost]
public ActionResult Kategoriekle(Model.Haberkategori ekle)
{

Dal.Kategoriislem.Kategoriekle("YHaberkategori_ekle", ekle);
return View();
}

public ActionResult Kategoriduzenle(int Sayfano)
{
Model.Haberkategori duzenle = Dal.Kategoriislem.Kategorinogetir("Yhaberkategorino_getir", Convert.ToInt32(Sayfano)).Single(m => Sayfano == m.Katid);

return View(duzenle);
}
[HttpPost]
public ActionResult Kategoriduzenle(Model.Haberkategori duzenle)
{
Dal.Kategoriislem.Kategoriduzenle("YHaberkategori_duzenle",duzenle);

return View(duzenle);
}
public ActionResult Kategorisil(int Sayfano)
{
Dal.Kategoriislem.Kategoril("haberkategorisil", Sayfano);

return RedirectToAction("Kategoriler", "Haber");


}


}
}


Kategoriduzenle view

@{
ViewBag.Title = "Kategoriekle";
Layout = "~/Areas/Admin/Views/Shared/Yonetim.cshtml";
}

[MENTION=185499]model[/MENTION] Model.Haberkategori

<div class="full_w">
<div class="h_title">Katagori Ekle</div>
[MENTION=108902]using[/MENTION] (Html.BeginForm("Kategoriduzenle", "Haber", FormMethod.Post))
{

<input type="hidden" name="Katid" value= [MENTION=185499]model[/MENTION].Katid" />

<div class="element">
<label for="name">Kategori Adi <span class="red"> Zorunlu</span></label>
[MENTION=60305]HTML[/MENTION].TextBoxFor(model => model.Kategoriadi, new {@class="text err" })<br / [MENTION=60305]HTML[/MENTION].ValidationMessageFor(model=>model.Kategoriadi)
</div>
<div class="element">
<label for="name">Seo Description<span class="red"> Zorunlu</span></label>
[MENTION=60305]HTML[/MENTION].TextBoxFor(model=>model.Seo_description, new {@class="text err" })<br / [MENTION=60305]HTML[/MENTION].ValidationMessageFor(model=>model.Seo_description)
</div>
<div class="element">
<label for="name">Seo Keywords<span class="red"> Zorunlu</span></label>
[MENTION=60305]HTML[/MENTION].TextBoxFor(model=>model.Seo_keywords, new {@class="text err" })<br / [MENTION=60305]HTML[/MENTION].ValidationMessageFor(model=>model.Seo_keywords)
</div>

<div class="element">
<label for="comments">Kategori Durumu</label>
<label [MENTION=60305]HTML[/MENTION].RadioButtonFor(model=>model.Aktif,true) Aktif</label>
<label [MENTION=60305]HTML[/MENTION].RadioButtonFor(model=>model.Aktif,false) Pasif</label>
</div>



<div class="entry">
<button type="submit" class="add">Kaydet</button>
</div>
}
</div>



Kategoriler view

@{
ViewBag.Title = "Kategoriler";
Layout = "~/Areas/Admin/Views/Shared/Yonetim.cshtml";
}

[MENTION=185499]model[/MENTION] IEnumerable<Model.Haberkategori>



<div class="full_w">
<div class="h_title">Haber Kategorileri</div>


<div class="entry">
<div class="sep"></div>
</div>
<table>
<thead>
<tr>
<th scope="col">Kategori No</th>
<th scope="col">Kategori Adi</th>
<th scope="col">Seo Keywords</th>
<th scope="col">Seo Description</th>
<th scope="col">Aktif</th>
<th scope="col" style="width: 65px;">İşlemler</th>
</tr>
</thead>

<tbody>
[MENTION=353529]Foreach[/MENTION] (var item in Model)
{


<tr>
<td class="align-center">@item.Katid</td>
<td>@item.Kategoriadi</td>
<td>@item.Seo_keywords</td>
<td>@item.Seo_description</td>
<td>@item.Aktif</td>
<td>
<a href="@Url.Action("Kategoriduzenle","Haber",new{Sayfano=@item.Katid})" class="table-icon edit" title="Düzenle"></a>

<a href="@Url.Action("Kategorisil","Haber",new{Sayfano=@item.Katid})" class="table-icon delete" title="Sil"></a>
</td>
</tr>
}
</tbody>
</table>
<div class="entry">

<div class="sep"></div>
<a class="button add" href="@Url.Action("Kategoriekle","Haber")">Yeni Kategori Ekle </a>
</div>
</div>


Kaynak Kodlar:http://www.teknobulvar.net/Ornek/Mvchaber.rar
 
Üst