Asp.net ile etiket sistemi yapmak için ilk önce veritabanımıza aşağıda görüldüğü gibi Tags adında bir tablo oluşturup ID ve Tag adında iki satır ekliyoruz Id satırına IDENTITY ile Primary Key özelliğini veriyoruz Tag Satırınıda Nvarchar olarak bırakıyoruz. Daha sonra TagCon adında Bir tablo Daha oluşturup biri TagId diğeri MakaleId olmak üzere iki satır ekleyip bunlara Identity ve primary key özelliğini veriyoruz son olarak Makaleler tablosunun Id si ile TagCon tablosunun MakaleId si ve Tags Tablosunun Id si ile Tagcon Tablosunun TagId si ile ilişkilendiriyoruz. Aynen aşağıda görüldüğü gibi...
Daha sonra Controller ımıza yeni bir action açıyoruz
public ActionResult MakaleEkle()
{
return View();
}
Oluşturduğumuz actiona view açıp içine bir textbox ve buton ekliyoruz
@model Xdb.Models.MakaleEkleModel
@using (Html.BeginForm("MakaleEkle", "Makale", FormMethod.Post))
{
@Html.TextBoxFor(a => a.Tag)
<button type="submit">Kaydet</button>
}
Görünüm
Son Olarak Bir Action daha oluşturup post edilen etiketleri veri tabanına kayıt ediyoruz
public ActionResult MakaleEkle(MakaleEkleModel model)
{
if (ModelState.IsValid)
{
Makaleler m = new Makaleler();
if (model.Tag!=null)
{
string[] tags = model.Tag.Split(',');
foreach (var t in tags)
{
string t = t.Trim();
Tags eti = db.Tags.FirstOrDefault(x => x.Tag.ToLower()==t);
if (eti == null)
{
eti = new Tags();
eti.Tag = t.Trim();
eti.STag = t;
m.Tags.Add(eti);
}
m.Tags.Add(eti);
}
}
db.Makaleler.Add(m);
db.SaveChanges();
}
return View();
}