Etiket arşivi: mvc

MVC Model’inde Nesneyi Validasyon Haricinde Tutmak

Model tasarımında nesnelerinizde validasyonu zorunlu tutabilirsiniz ama form işlemlerinde istediğiniz alanları ModelState Validate kontrolü haricinde tutmak istiyorsanız aşağıdaki örneği inceleyebilirsiniz.

ModelState.Remove("NESNE_ADI");

if (ModelState.IsValid)
{
// Prosedürler
}

MVC Model’deki Date Alanları Proplemi ve Çözümü

Sql Server’da oluşturduğunuz tablodaki date tipindeki alanlarının form kontrollerinde oluşan sorunu çözmek için aşağıdaki js kodunu kullanmanız yeterlidir.

$.validator.setDefaults({ ignore: '.ignore' });
$.validator.methods["date"] = function (value, element) { return true; };
$.validator.methods.range = function (value, element, param) {
var globalizedValue = value.replace(",", ".");
return this.optional(element) || (globalizedValue >= param[0] && globalizedValue <= param[1]);
};

$.validator.methods.number = function (value, element) {
return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:[\s\.,]\d{3})+)(?:[\.,]\d+)?$/.test(value);
};

Ayrıca eğer form elemanınızın kontrol edilmeden atlanmasını istiyorsanız class attribute “ignore” eklemeniz yeterlidir. Örnek

class="ignore"

ASP.NET MVC Dosya Yükleme

MVC’de dosya yükleme işlemine göz atacağız.

Projemizde dosya yükleme için controller ve view oluşturduktan sonra, view kısmında dosya yükleme için formumuzu oluşturalım.

@using (Html.BeginForm("Index", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@TempData["sonuc"]
<div>
<input type="file" name="dosya" />
<input type="submit" value="Gönder" />
</div>
}

Controller’da gerekli kodlarımızı yazıyoruz.

[HttpPost]
public ActionResult Index(HttpPostedFileBase dosya)
{
if (dosya != null && dosya.ContentLength > 0)
{
var path = Path.Combine(Server.MapPath("~/upload_klasor"), dosya.FileName);
dosya.SaveAs(path);
TempData["sonuc"] = "Dosya başarıyla yüklenmiştir.";
}
return View();
}

Dosya yüklemek istediğimiz klasöre yazma izni veridikten sonra uygulamamızı çalıştırabilirsiniz.

Entity Framework An error occurred while updating the entries. See the inner exception for details.

Ana tablonuzdaki ID ile referans tablonuzda ilişkilendirdiğiniz alanın; değerlerinin birbirinden farklı olmasından kaynaklanan hatadır.

Örnek vermek gerekirse aşağıdaki gibi tablo yapımız var. TBL_KULLANICI tablomuzdaki Id ile TBL_KULLANICI_YETKI tablomuzdaki Kullanici_Id birbiri ile ilişkilidir.

TBL_KULLANICI (Id, Ad)
TBL_KULLANICI_YETKI (Id, Kullanici_Id, Baslik)

Eğer TBL_KULLANICI tablosuna yeni kayıt eklerken aynı anda TBL_KULLANICI_YETKI tablosunada yeni kayıt ile alakı kayıt ekliyorsak; Id ile Kullanici_Id aynı değer olmak zorundadır. Farklı değer olduğunda bu hata ile karşılaşırsınız.