arşiv

‘MVC’ kategorisi için arşiv

Asp.NET MVC Hata Sayfasına Yönlendirme

Pazar, 24 Eyl 2017 yorum yok

ErrorController 

public class ErrorController : Controller
{
        public ActionResult ErrorPage(Exception exception)
        {
            Response.TrySkipIisCustomErrors = true;
            return View();
        }
        public ActionResult ErrorPage404()
        {
            Response.StatusCode = 404;
            Response.TrySkipIisCustomErrors = true;
            return View();
        }
        public ActionResult ErrorPage403()
        {
            Response.StatusCode = 403;
            Response.TrySkipIisCustomErrors = true;
            return View();
        }
}

web.config ayarları

<system.webServer>
    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>

    <httpErrors errorMode="Custom" existingResponse="Replace">
      <remove statusCode="404" subStatusCode="-1"/>
      <error statusCode="404" path="Error/ErrorPage404" responseMode="ExecuteURL"/>
      <remove statusCode="403" subStatusCode="-1"/>
      <error statusCode="403" path="Error/ErrorPage403" responseMode="ExecuteURL"/>
    </httpErrors>
  </system.webServer>

<system.web>
    <customErrors mode="RemoteOnly" defaultRedirect="Error">
      <error statusCode="404" redirect="ErrorPage404"/>
      <error statusCode="403" redirect="ErrorPage403"/>
    </customErrors>
</system.web>

Global.asax ayarları

protected void Application_EndRequest()
{
	if (Context.Response.StatusCode == 404)
	{
		Response.Clear();

		var rd = new RouteData();
		rd.Values["controller"] = "Error";
		rd.Values["action"] = "ErrorPage404";

		IController c = new ErrorController();
		c.Execute(new RequestContext(new HttpContextWrapper(Context), rd));
	}
	else if (Context.Response.StatusCode == 403)
	{
		Response.Clear();

		var rd = new RouteData();
		rd.Values["controller"] = "Error";
		rd.Values["action"] = "ErrorPage403";

		IController c = new ErrorController();
		c.Execute(new RequestContext(new HttpContextWrapper(Context), rd));
	}
}
Kaynal: https://forum.donanimhaber.com/m_125710795/printable.htm
Categories: MVC Tags:

Windows Server 2012 / IIS 8.0 uygulamalarında tarih formatının “d.M.yyyy” olarak değişmiş olması

Cuma, 07 Tem 2017 yorum yok

Merhaba Arkadaşlar,

Varsayılan tarih formatı “Windows Server 2012” üzerinde, “Windows Server 2008 R2” den farklı olduğu için, IIS uygulamalarınızı IIS 8.0 üzerine taşırken, uygulamanızda kullanmakta olduğunuz tarih formatlarında değişiklik olduğunu farketmiş olabilirsiniz.

Bunu en basitinden aşağıdaki “aspx” kodunu kullanarak test edebilirsiniz. Bu kod “System.DateTime.Now” çıktısını ekrana dökecektir:

Kaynak ve yazının devamı https://blogs.msdn.microsoft.com/devtr/2013/05/22/windows-server-2012-iis-8-0-uygulamalarnda-tarih-formatnn-d-m-yyyy-olarak-deimi-olmas/

Sitenizin culture durumu için aşağıdaki script kullanabilirsiniz.

<script>
	console.log('Default: ' + '<%=System.DateTime.Now%>');
	console.log('Local Time: ' + '<%=System.DateTime.Now.ToLocalTime()%>');
	console.log('Short Time: ' + '<%=System.DateTime.Now.ToShortDateString()%>');
	console.log('ToString Default: ' + '<%=System.DateTime.Now.ToString()%>');
	console.log('Universal Time: ' + '<%=System.DateTime.Now.ToUniversalTime()%>');
	console.log('d – Short Date: ' + '<%=System.DateTime.Now.ToString("d")%>');
	console.log('g – General: ' + '<%=System.DateTime.Now.ToString("g")%>');
</script>

 

MVC ATTRİBUTE KULLANIMI

Cumartesi, 18 Mar 2017 yorum yok

MVC Attribute aşağıdaki gibi kullanabilirsiniz.

Filter  Interface  Default Implementation

 Authorization Filter  IAuthorizationFilter AuthorizeAttribute
 Action Filter  IActionFilter ActionFilterAttribute
 Result Filter  IResultFilter ActionFilterAttribute
 Exception Filter  IExceptionFilter HandleErrorAttribute

Authorization : Diğer filtreler ve Action metodlardan önce çalışmaktadır.Controller ya da Controller içindeki Action metoda erişim kısıtlamak için kullanılır.
Exception : Hata durumlarında çalışan filtredir.
Action : Herhangi bir Controller sınıfında bulunan Action metottan önce ya da sonra çalışır.
Result : Action Result çalıştırılmadan önce ya da çalıştırıldıktan sonra çalışır.

Kaynak: https://cemelma.wordpress.com/2014/09/04/mvc-attribute-kullanimi/

Categories: MVC Tags:

Cookie Silmek

Pazar, 13 Kas 2016 yorum yok
public void DeleteCookie(string name)
{
    DateTime now = DateTime.UtcNow;
    string cookieKey = name;
    var cookie = new HttpCookie(cookieKey, null)
    {
        Expires = now.AddDays(-1)
    };
    HttpContext.Response.Cookies.Set(cookie);
}

Kaynak: http://www.aspmvcnet.com/tr/m/asp-net-mvc/cookie-silmek.html

Categories: MVC Tags:

MVC’de A Potentially Dangerous Request.Form Value Was Detected From The Client Hatas

Çarşamba, 07 Eyl 2016 yorum yok
[ValidateInput(false)]

 

Categories: MVC Tags:

MVC içindeki filtreler

Çarşamba, 07 Eyl 2016 yorum yok

Filter

 Interface

 Default Implementation


 Authorization Filter  IAuthorizationFilter AuthorizeAttribute
 Action Filter  IActionFilter ActionFilterAttribute
 Result Filter  IResultFilter ActionFilterAttribute
 Exception Filter  IExceptionFilter HandleErrorAttribute

Authorization : Diğer filtreler ve Action metodlardan önce çalışmaktadır.Controller ya da Controller içindeki Action metoda erişim kısıtlamak için kullanılır.
Exception : Hata durumlarında çalışan filtredir.
Action : Herhangi bir Controller sınıfında bulunan Action metottan önce ya da sonra çalışır.
Result : Action Result çalıştırılmadan önce ya da çalıştırıldıktan sonra çalışır.

 

Categories: MVC Tags:

MVC Get Attributes

Çarşamba, 07 Eyl 2016 yorum yok
Assembly assembly = Assembly.GetExecutingAssembly();
IEnumerable<Type> types = assembly.GetTypes()
	.Where(
		type =>
			typeof(Controller).IsAssignableFrom(type) &&
			type.Name.Replace("Controller", "") == controllerName)
	.OrderBy(x => x.Name);

foreach (Type cls in types)
{                
	HelpAttribute helpAttribute = Attribute.GetCustomAttribute(cls, typeof(HelpAttribute)) as HelpAttribute;
	url = helpAttribute != null ? helpAttribute.Url : string.Empty;
	........
}

 

Categories: C#, MVC, Reflection Tags: , ,

MVC Get – Controllers, Actions, Attributes and Return Types – 2

Çarşamba, 07 Eyl 2016 yorum yok
Assembly assembly = Assembly.LoadFrom(sAssemblyFileName)
IEnumerable<Type> types = assembly.GetTypes().Where(type => typeof(Controller).IsAssignableFrom(type)).OrderBy(x => x.Name);
foreach (Type cls in types)
{
      list.Add(cls.Name.Replace("Controller", ""));
      IEnumerable<MemberInfo> memberInfo = cls.GetMethods(BindingFlags.Instance | BindingFlags.DeclaredOnly | BindingFlags.Public).Where(m => !m.GetCustomAttributes(typeof(System.Runtime.CompilerServices.CompilerGeneratedAttribute), true).Any()).OrderBy(x => x.Name);
      foreach (MemberInfo method in memberInfo)
      {
           if (method.ReflectedType.IsPublic && !method.IsDefined(typeof(NonActionAttribute)))
           {
                  list.Add("\t" + method.Name.ToString());
           }
      }
}

 

Categories: C#, MVC, Reflection Tags: , ,

MVC Get – Controllers, Actions, Attributes and Return Types

Çarşamba, 07 Eyl 2016 yorum yok
Assembly asm = Assembly.GetAssembly(typeof(MyWebDll.MvcApplication));

var controlleractionlist = asm.GetTypes()
        .Where(type=> typeof(System.Web.Mvc.Controller).IsAssignableFrom(type))
        .SelectMany(type => type.GetMethods(BindingFlags.Instance | BindingFlags.DeclaredOnly | BindingFlags.Public))
        .Where(m => !m.GetCustomAttributes(typeof( System.Runtime.CompilerServices.CompilerGeneratedAttribute), true).Any())
        .Select(x => new {Controller = x.DeclaringType.Name, Action = x.Name, ReturnType = x.ReturnType.Name, Attributes = String.Join(",", x.GetCustomAttributes().Select(a => a.GetType().Name.Replace("Attribute",""))) })
        .OrderBy(x=>x.Controller).ThenBy(x => x.Action).ToList();

 

Categories: C#, MVC, Reflection Tags: , ,

Pagination ve Infinite Scroll Tercihi

Çarşamba, 31 Ağu 2016 yorum yok

İçerik listeleme veya veri sorgulama işlemi sonucunda elde edilen verilerin çok fazla olduğu durumlarda tüm verinin kullanıcıya gösterilmesi hem maliyetli hem de kafa karıştırıcı bir yöntemdir. Bu gibi durumlarda verilerin kullanıcılara sıralı parçalar halinde sunulması gerekmektedir. Sıralı parçalı gösterim günümüzde web ve mobil ortamlarda iki şekilde yapılmaktadır.

  1. Pagination yöntemi
  2. Infinite Scroll yöntemi

Kaynak: http://www.bayramucuncu.com/pagination-ve-infinite-scroll-tercihi/

Categories: Asp.NET, Genel, MVC Tags: , ,

Sayfa Yükleniyor…..

Çarşamba, 10 Ağu 2016 yorum yok
<div id="divLoading" style="display:none; z-index: 10002;">
    <div class="jtable-busy-panel-background" style="left:0; top:0; margin:0; width: 100%; height: 100%;"></div>
    <div style="position: fixed; top: 45%; left: 45%;">
        <i class="fa fa-refresh fa-spin fa-5x fa-fw margin-bottom"></i>
    </div>
</div>
$(document).ajaxStart(function () {
    onBegin();
});

$(document).ajaxStop(function (event, request, settings) {
    onComplete();
});
function onBegin() {
    $("#divLoading").show();
}
 
function onComplete() {
    $("#divLoading").hide();
}

 

Asp.NET Awesome

Salı, 09 Ağu 2016 yorum yok
Categories: Asp.NET, bestURL, MVC Tags: , ,

MVC UIHint :)

Cuma, 29 Tem 2016 yorum yok
Categories: MVC Tags:

MVC EditorTemplates ve DisplayTemplates

Cuma, 29 Tem 2016 yorum yok
Categories: MVC Tags:

MVC ActionResult Türleri Ve Açıklamaları

Perşembe, 28 Tem 2016 yorum yok
ActionResult Türü Açıklama Helper Metodu
HttpNotFound Result 404 durum kodu döndererek aranılan içeriğin bulunmadığını belirtebilirsiniz. HttpNotFound
HttpUnauthorızedResult Yetkisizi işlem yaptığınıa dair bir durum kodu ve mesajı dönderebilirsiniz. Return new HttpUnauthorizedResult()
JavaSciptReeult Kullanıcı tarafına çalıştırılabilir javascript kodlarını dönderebilirsiniz. JavaScript
FileContentResult Kullanıcıya dosyayı byte dizileri halinde dönderebilirsiniz. File
FilePathResult Dosyayı dosya yolunu belirterek dönderebilirsiniz. File
FileStreamResult Dosyayı stream olarak dönderebilirsiniz. File
PartialViewResult Tanımlı olan bir PartialView içeriğini dönderebilirsiniz. PartialView
ViewResult Tanımlı olan bir View içeriğini dönderebilirsiniz. View
ContentResult Kullanıcı tarafına view kullanmadan içerik dönderebilirsiniz. Content
JsonResult json formatında bir sonuç dönderir Json
EmptyResult Adı üstünde boş yani hiçbir sonuç döndermemektedir. return new EmptyResult()
RedırectResult HTTP yönlendirmesi ile yeni bir siteye yönlendirmek için kullanılır Redirect
RedırectToRouteResult   RedirectToAction, RedirectToRoute, RedlrectToActionPermanent. RedirectToRoutePermanent

Kaynak ve örnekler için http://www.muratoner.net/aspnet-mvc/aspnet-mvc-actionresult-turleri-ve-aciklamalari sayfayı ziyaret ediniz. 

Categories: MVC Tags:

MVC’de Data Annotions’lar

Perşembe, 28 Tem 2016 yorum yok
Attribute Açıklama
Key Alanın birincil anahtar olduğu belirtilir ve veritabanı oluşturulurken otomatik artan sayı olarak ayarlanır.
Required Alanın zorunlu olduğu belirtilir
Column Alanın veritabanındaki alanı ile ilgili ayarları belirtilir örnek veritabanında oluşacak olan alanadı(Name), tür adı(TypeName) veya Order(Sira – Çoklu Key kullanımında kullanılır)
DataType Alanın veritürü belirtili örnek DataType’lar şu şekildedir. Date,Time,Currency,EmailAdress,Password v.b
HiddenInput Alanın sayfada gösterilmemesini sağlar ama veri server’a gönderilir sadece kullanıcıdan gizlenir.
ReadOnly Alanın sadece okunabilir özelliğine sahip olması için kullanılır.
DisplayFormat Sayfaya bastırılacak fotmat bilgisi belirlenir genellikle Tarih, Saat, Sayı formatlama gibi durumlarda kullanılır.
Table Veritabanında oluşacak tablonun adı(Name) veya Şema(Schema)’sı belirtilir.
StringLength Girilecek karakter sayısını sınırlamada kullanılır.
RegularExpression Regex neredeyse tüm programlama dillerinde kullanılan bir doğrulama desenidir.
Range Sayısal değerler için aralık belirtmede kullanılır.
Remote Kaydın varolup olmadığını kontrol etme örnek sayfa yenilemeden girilen kullanıcı adının var olup olmadığını kontrol etme.
Compare Karşılaştırma yapmak için kullanılır örnek girilen ili şifrenin aynı olup olmamasını karşılaştırma.
ScaffoldColumn Düzenlenmesini istemediğimiz model özelliği için kullanılır. Böylece bu alan EditorForModel kullandığımızda gizlenecektir. Örneğin, modelin id sini kendimiz belirlemiyoruz. Bu özelliği veritabanına bırakıyoruz. Dolayısıyla bu alan için ScaffoldColumn niteliği kullanabiliriz.

Kaynak ve örnekler için http://www.muratoner.net/aspnet-mvc/mvc-data-annotionslar-ve-aciklamariyla-bol-ornekler sayfayı ziyaret ediniz.

Categories: MVC Tags:

MVC Web Helpers Chart

Çarşamba, 27 Tem 2016 yorum yok
Categories: MVC Tags:

MVC Web Helpers Cache

Çarşamba, 27 Tem 2016 yorum yok
@{
    var cacheItemKey = "CachedTime";
    var cacheHit = true;
    var time = WebCache.Get(cacheItemKey);

    if (time == null) {
        cacheHit = false;
    }

    if (cacheHit == false) {
        time = @DateTime.Now;
        WebCache.Set(cacheItemKey, time, 1, false);
    }
}
<!DOCTYPE html>
<html>
<head>
    <title>WebCache Helper Sample</title>
</head>
<body>
    <div>
        @if (cacheHit) {
            @:Found the time data in the cache.
        } else {
            @:Did not find the time data in the cache.
        }
    </div>
    <div>
        This page was cached at @time.
    </div>
</body>
</html>

 

Categories: MVC Tags:

.Net Türkçe Tarih Sorununu Düzeltme

Salı, 26 Tem 2016 yorum yok

Bu işlemi yapabilmek için benim bulduğum iki yol var.

  1. Global.asax dosyasındaki "Application_BeginRequest" fonksiyonunun içeriğini aşağıdaki gibi düzenlemek yeterli olacaktır. Not: Hangi formata göre düzenleme yapacaksanız istediğiniz gibi fonksiyonun içeriğini ayarlayabilirsiniz.

     

     

     

    protected void Application_BeginRequest()
    {
        CultureInfo cInf = new CultureInfo("tr-TR", false);
        
        cInf.DateTimeFormat.DateSeparator = "/";
        cInf.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy";
        cInf.DateTimeFormat.LongDatePattern = "dd/MM/yyyy HH:mm:ss tt";
    
        System.Threading.Thread.CurrentThread.CurrentCulture = cInf;
        System.Threading.Thread.CurrentThread.CurrentUICulture = cInf;
    }

     

  2. İkinci yol ise IIS üzerinden yapılabilir.
    IIS_Config
Categories: Asp.NET, C#, MVC Tags: , ,

Windows Application ‘dan WebApi ‘leri Çağırmak

Çarşamba, 15 Haz 2016 yorum yok

Küçük bir uygulama yaparak paylaşacağım.

Kaynak: http://ayhanugur.com/windows-applicationdan-webapileri-cagirmak/

Categories: bestURL, MVC, WebApi Tags: , ,

HttpUtility – Encode ve Decode

Çarşamba, 18 May 2016 yorum yok
        public ActionResult Index()
        {
            string isim = "<p><b>Yakup KALEBAŞI</b></p>";
            string htmlEncode = HttpUtility.HtmlEncode(isim);
            string htmlDecode = HttpUtility.HtmlDecode(htmlEncode);
            ViewBag.HtmlBaslik = htmlEncode;
            ViewBag.HtmlBaslik2 = htmlDecode;

            return View();
        }

 

<div>
    Encode : @ViewBag.HtmlBaslik
    <br/>
    Decode : @ViewBag.HtmlBaslik2
    <br/>
    <br/>
    Encode Html.Raw : @Html.Raw(ViewBag.HtmlBaslik)
    <br/>
    <br/>
    Decode Html.Raw : @Html.Raw(ViewBag.HtmlBaslik2)
    <br/>
    Decode Html.Raw : @MvcHtmlString.Create(ViewBag.HtmlBaslik2)
</div>
Index
Encode : &lt;p&gt;&lt;b&gt;Yakup KALEBAŞI&lt;/b&gt;&lt;/p&gt; 
Decode : <p><b>Yakup KALEBAŞI</b></p> 

Encode Html.Raw : <p><b>Yakup KALEBAŞI</b></p> 

Decode Html.Raw :
Yakup KALEBAŞI


Decode Html.Raw :
Yakup KALEBAŞI

 

Categories: MVC Tags:

WebGrid Kullanımı

Çarşamba, 18 May 2016 yorum yok
Categories: MVC Tags:

Model Validationda kullanılan Attribute’lar

Salı, 17 May 2016 yorum yok

Required : Girilmesi zorunlu alan
Kullanımı: [Required]

Display Name: Form alanında görünen ad
Kullanımı:[Display(Name=”Kullanıcı Adı”)]

StringLegnth: Girilecek değerin uzunluğu
Kullanımı: [StringLgenth(36,ErrorMessage=”Azami 6 ile 36 Karakter Girilebilir”,MinimumLength=6]

Range: Girilebilecek en büyük ve en küçük sayı tanımlanır.
Kullanımı: [Range(0,100,ErrorMessage=”0 ile 100 Arası girilebilir”)]

DataType: Alan mzek bir tanım ise veri tipi tanımlanır.
Kullanımı: [DataType(DataType.EmailAddress)]

ScaffoldColumn: Otomatik oluşturulan formlarda, bu alanın oluşup oluşmamasını sağlar.
Kullanımı: [ScaffoldColumn(false)]

Remote: Bir Action ile veri kontrolü yapmanızı sağlar. En çok kullanılan overload metodunun 1. parametresi action name, 2. parametresi controller, 3. parametresi uyarı mesajını alır.
Kullanımı: [Remote(“KullaniciKontrol”,”Kullanicilar”,ErrorMessage=”Kullanıcı bulunamadı”)]

Compare: Karşılaştırma için kullanılır. 1. parametre karşılaştırma yapılacak alanı, 2.parametre ise uyarıyı belirtir.
Kullanımı:[Compare(“Sifre”,ErrorMessage=”Şifreler uyuşmuyor”)]

RegularExpression: Düzenli ifadeler için kullanılır.
Kullanımı: [RegularExpression(@”^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$”, ErrorMessage = “Lütfen geçerli bir e-mail giriniz”)]

AllowHTML: HTML kodlarının girileceği belirtilir.
Kullanımı: [AllowHTML]

Kaynak: http://ekremozer.com/makale/model-validationda-kullanilan-attributelar

Categories: MVC Tags: