28 Mart 2016 Pazartesi

C# Tarih Formatlama (C# Date Formatting)

Yorum Bırak
Programlarımızda veya websitelerimizde tarihi belli biçimlerde göstermeye ihtiyaç duyabiliriz. Bunun için aşağıdaki tablodaki gibi istediğimiz formatı verebiliriz:
Yazıyı Oku

.Net Mvc Error Handling

Yorum Bırak
Asp.Net Mvc frameworkte, yapılan işlemler soncunda alınan hatalar için hata sayfasına yönlendirme işlemi yapmak için  Global.asax dosyasındaki Application_Error metodunu aşağıdaki şekilde düzenleyebiliriz:

protected void Application_Error(object sender, EventArgs e)
{
   Exception exception = Server.GetLastError();
   // Exceptionu logluyoruz.

   ILogger logger = Container.Resolve<ILogger>();
   logger.Error(exception);

   Response.Clear();

   HttpException httpException = exception as HttpException;

   RouteData routeData = new RouteData();
   routeData.Values.Add("controller", "Error");

   if (httpException == null)
   {
       routeData.Values.Add("action", "Index");
   }
   else //http exception handle kısmı
   {
       switch (httpException.GetHttpCode())
       {
          case 404:
              // Sayfa bulunamadı hatası için
              routeData.Values.Add("action", "HttpError404");
              break;
          case 500:
              // Server hatası için.
              routeData.Values.Add("action", "HttpError500");
              break;

           // default hata için genel bir hata sayfası 
           default:
              routeData.Values.Add("action", "General");
              break;
      }
  }           

  // Pass exception details to the target error View.
  routeData.Values.Add("error", exception);

  // serverdaki hatayı temizler.
  Server.ClearError();


  Response.TrySkipIisCustomErrors = true; 

  // hedef controllerı çağır ve routedatayı pass et.
  IController errorController = new ErrorController();
  errorController.Execute(new RequestContext(    
       new HttpContextWrapper(Context), routeData));
}

burada en çok karşılaşılan 404 ve 500 hataları için yönlendirme bulunmakta, diğer hata kodları için de switch case bloğu için tanımlama yapabilirsiniz.
Yazıyı Oku

24 Mart 2016 Perşembe

Asp.Net Mvc Javascript İçerisinde Razor Kullanma

Yorum Bırak
Javascript içerisinde Razor syntaxı kullanma ihtiyacımız olduğunda (Modele erişmek vs için) aşağıdaki gibi kullanabiliriz:

<script type="text/javascript">

    // javascript kodları.


    // razor syntax
    @foreach (var item in Model) {
        <text>
            
            var title = '@(Model.Title)';
          
        </text>
    }
</script>
Yazıyı Oku

Asp.Net Mvc Controllerdan Image Döndürme

Yorum Bırak
Controllerdan image dosyası döndürmek için aşağıdaki kod bloğunu kullanabilirsiniz:

public ActionResult Image(string id)
{
    var dir = Server.MapPath("/Images");
    var path = Path.Combine(dir, id + ".jpg");
    return base.File(path, "image/jpeg");
}
Yazıyı Oku

Asp.Net Mvc Controller'dan String Döndürme

Yorum Bırak
Ajax request sonucu controllerdan string döndürmek için Controller metodunuzdan ContentResult döndürebilirsiniz.

Örnekle inceleyecek olursak,
public ActionResult Temp() {
    return Content("mERHABA DÜNYA!");
}


İsterseniz bunu xml döndürecek şekilde aşağıdaki gibi de modifiye edebilirsiniz:

return Content("<xml>Bu bir xml formatıdır.</xml>", "text/xml");

Yazıyı Oku

Handler “PageHandlerFactory-Integrated” has a bad module “ManagedPipelineHandler” in its module list hatası düzeltme

Yorum Bırak
Bu hata Asp.net iis ile birlikte tam yüklenmediğine çıkan bir hatadır. Hatanın çözümü için komut satırından aşağıdaki komutu çalışıtrabilirsiniz:

Sistem 32 bitse:

%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i

Sistem 64 bitse:

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i



Yazıyı Oku

A potentially dangerous Request.Form value was detected from the client hata çözümü

Yorum Bırak
Web uygulamalarında alınan bu hata server tarafına gonderilen veride tehlikeli olabilecek karakterler olması durumunda oluşmaktadır. Bunun çözümü için:

Web.confige aşağıdaki kodu ekleyebilrisiniz:

<configuration>
...
  <location path="MyFolder/.aspx">
    <system.web>
      <pages validateRequest="false" />
      <httpRuntime requestValidationMode="2.0" />
    </system.web>
  </location>
...
</configuration>



Artı olarak bu hatayı aldığınız metodun üzerine validateinput(false) attribute de eklenebilir.

[HttpPost, ValidateInput(false)]
public virtual ActionResult Edit(int id, FormCollection collection)
{
    ...
}






Yazıyı Oku