Web Yazılıma Dair Kısa Notlar

ActionResult tipteki bir metoda default’ta boş string bir parametre aşağıdaki şekilde gönderilebilir. Değer gönderildiğinde parametre değeri gelen değer olarak setlenir.

Publis ActionResult MethodName(string BusinessAreaName = “” ) { }

Package console’dan bir şey indirmek/kaldırmak için
Install Package
Install-Package PackageName

Remove Nuget Package
Uninstall-Package PackageName –RemoveDependencies

Advertisements

Resimleri Farklı Kaydet’i Engelleme

Yazdığınız uygulamadaki resimlerin indirilmesini istemiyorsanız browser default özelliği olan sağ tıklamayla resmi kaydet, resmi farklı kaydet gibi seçenekleri engellemeniz gerekir. Bunu jquery sorgusuyla basit bir şekilde yapabilirsiniz.

Buradaki slideImage resmin olduğu divin Id’sidir.

$(document).ready(function () {
$(‘#slideImage’).bind(‘contextmenu’, function () { return false; });
});

Entity Framework

Update Model From Database doesn’t add new table from database  : Entity FrameworkTen eklemeye çalıştığınız tablo modelde görntülenmiyor ise tablo yapısı beklediği formatta olmadığı için eklemiyor olabilir. Bunun için tabloda primary key olup olmadığını kontrol edin. Eğer yoksa primary key ekleyip yeniden modeli güncelleyin. Tablo modele eklenecektir.

.Net MVC Dosya Yükleme

İlgili Linkler:

https://cmatskas.com/upload-files-in-asp-net-mvc-with-javascript-and-c/

http://forums.asp.net/t/1775264.aspx?Multiple+file+upload+with+ASP+NET+MVC

Dökümanı indirmek için :

http://stackoverflow.com/questions/3604562/download-file-of-any-type-in-asp-net-mvc-using-fileresult

http://stackoverflow.com/questions/1375486/how-to-create-file-and-return-it-via-fileresult-in-asp-net-mvc

 

Dökümanı görüntülemek için : https://code.msdn.microsoft.com/ASPNET-Document-Viewer-e7c2a39f

http://stackoverflow.com/questions/16448780/reading-and-displaying-uploaded-text-files-in-mvc

Bootstrap multiselect List Kullanımı

Responsive çoklu seçimli combolar için Bootstrap multiselect kullanılabilir.

Kullanımı :
<select id=”multiSelectArea” multiple=”multiple” title=”Seçiniz”>
<option>1 </option>
<option>2 </option>
</select>

Option seçeneklerinin veri tabanından okunması :
for (var i = 0; i < dataTable.length; i++){
$(‘#multiSelectArea’).append($(‘<option>’, {
value: result[1][i][“ValueColumn”],
text: result[1][i][“TitleColumn”]
}));
$(‘#multiSelectArea’).multiselect(‘rebuild’);

MultiSelect Attributes :
$(‘#multiSelectArea’).multiselect({
nonSelectedText: ‘Seçiniz ‘, // Default Text
nSelectedText: ‘Seçildi’, // Seçeneklerden bir tanesi seçildiğinde yazılacak text
maxHeight: 150, // Listenin yüksekliğini set eder. Scroll oluşturur.
buttonWidth: ‘150px’, // Combo’nun genişliğini set eder.
includeSelectAllOption: true, // Listedekilerin tümünün seçilmesini de seçeneklere ekler.
allSelectedText: ‘Tüm Seçenekler Seçildi’, // Tüm Seçenekler seçildiğinde combonun içinde yazacak metin.
selectAllText: ‘ Tümünü Seç’ //Tümünü Seç yazısını set eder.
});

 

https://github.com/davidstutz/bootstrap-multiselect/blob/master/index.html

 

 

Searchable List

 

 

MVC Kısa Notlar

View dosyalarında Model kullanma :

sayfanın modeli tanıması için sayfanın üst kısmına

@model List<ProjectModelName.Models.TableName> tanımladıktan sonra @foreach(var item in Model ) şeklinde kullanılabilir.

 

MVC space ( boşluk ) ekleme :   

Yazdırılacak ifadeden önce   @:  kullanarak boşluk eklenebilir.

MVC Linq komutları:

Take(x): Belirtilen sayıda kayıt döner.

Hatalar ve Çözümleri

MVC : Entity ‘de bir değişiklik yapıp kaydetmeye çalıştığımızda ” Validation failed for one or more entities. See ‘EntityValidationErrors’ property for more details ” şeklinde bir hata alıyorsak  en olası sebebi şunlar olabilir  :

  1. Veritabanında (database) NULL olamaz olarak yapılandırılmış (Allow Nulls işareti kaldırılmış) bir alana NULL değer girmeye çalışmak
  2. Belirtilen üst sınır dışında veri giriyi yapmaya çalışmak, örneğin, nvarchar(5) olan bir alana 5 karakterden uzun veri girişi yapmaya çalışmak.

Çözüm olarak try catch bloğunda

catch (DbEntityValidationException e)
{
     foreach (var eve in e.EntityValidationErrors)
     {
           Response.Write(string.Format("Entity türü \"{0}\" şu hatalara sahip \"{1}\" Geçerlilik hataları:", eve.Entry.Entity.GetType().Name, eve.Entry.State));
       foreach (var ve in eve.ValidationErrors)
       {
         Response.Write(string.Format("- Özellik: \"{0}\", Hata: \"{1}\"", ve.PropertyName, ve.ErrorMessage));
        }
         Response.End();
         }



şeklinde bir kod parçasıyla hangi property’den dolayı hata alındığını görebiliriz.

C#  :  System.InvalidCastException: Specific cast is not valid (Belirtilen atama geçerli değil ) hatası : Bu hata iletilecek datanın beklenen şekilde alınmadığı ya da atandığı datatable, list vs. ile uyumlu olmadığından dolayı verilebiliyor. Bu hatayla entity’de sp’den aldığım datayı datatable atarken aldım. Sp’nin döndüğü cursor’u kontrol ettiğimde bir kolonun , den sonraki ondalık kısım da uzun bir rakamlar dizisi geldiğini gördüm. Round ile kolonun 3 haneli gelmesini sağlayınca hata düzeldi.

SQL :String or binary data would be truncated : Bu hata tabloya insert etmek ettiğiniz kayıttan dolayı alınabilir. Insert edilen kolonun length’i ile gelen data genişliği uyuşmamaktadır. Kolon length’i arttırılabilir.

MVC : Httpcontext current does not contain a definition hatası : Sebebi Controlller class’ı da HTTPCOntext isimli bir property’ye sahiptir. Buradaki HTTPContext’in altında Current property’si olmadığı için hata alınır.

HttpContext.Current kısmını System.Web.HttpContext.Current şeklinde değiştirmek gerekir.