Tuesday, July 29, 2014

Change first letter of word to Upper case using C#

Change the text in CameCase .
Change the text to TitleCase


var testText="hello test case";
var outText= CultureInfo.CurrentCulture.TextInfo.ToTitleCase(testText.ToLower());

Happy Coding

Cheers !!!
Binaya

Monday, May 26, 2014

MVC Razor View The name ‘model’ does not exist in the current context

Error: 
you have added new area and added controller models and view and when you run your project you face the error :The name ‘model’ does not exist in the current context

Reason :  I hope you have deleted default files added by Visual studio , specially focusing on web.config file .


Now add new web.config file  and copy the below code 

<?xml version="1.0"?>
<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>
  <appSettings>
    <add key="webpages:Enabled" value="false" />
  </appSettings>
  <system.web>
    <httpHandlers>
      <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
    </httpHandlers>
    <!--
        Enabling request validation in view pages would cause validation to occur
        after the input has already been processed by the controller. By default
        MVC performs request validation before a controller processes the input.
        To change this behavior apply the ValidateInputAttribute to a
        controller or action.
    -->
    <pages
        validateRequest="false"
        pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <controls>
        <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
      </controls>
    </pages>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
  </system.webServer>
</configuration>


Hope it works for you .

Tuesday, March 25, 2014

ASP.NET MVC partial view works fine in local but does not render when published

When new MVC project is created with some partial views.
The projects works fine when it is build in local but when published to server it shows message as :

The partial view '..' was not found or no view engine supports the searched locations. The following locations were searched:
~/......

If your created views are in another project or another folder from your current project this is the issue , Basically the files should be  in the web site project, in it's views folder,  and  most important is

 the build action should be set to Content and not to copy to the output folder.


Hope it helps.
Cheers 

Thursday, March 20, 2014

Initialize class as array and assign values to its elements using C#


Suppose you have ClassA with three members. When you try to initialize class as  
ClassA[] varrayData = new ClassA[Length];
at this point your class initializes not class members.When you try to access the class members it throws null exception.    So solve the issue, find the simple way of initialize class as array with its members
 public class ClassA
    {
        public string Name { get; set; }
        public double Address { get; set; }
        public string Notes { get; set; }
    }

    public void YourMethod()
    {
        ClassA[] varrayData = InitializeArray<ClassA>(Length);
        for (var j = 0; j < Length; j++)
        {
            varrayData[j].Name = "testname" + j;
            varrayData[j].Address = ""
            testAddress + j;
            varrayData[j].Notes = "testNotes" + j;
        }
    } 
    //use this piece of code that does the magic:
    private T[] InitializeArray<T>(int length) where T : new()
    {
        T[] array = new T[length];
        for (int i = 0; i < length; ++i)
        {
            array[i] = new T();
        }
        return array;
    }