Archives for December 2009

Server side conversion of UserControl to html

In order to get the html out of an ASP.NET control you can use the following code:

string pathToUserControl = "~/Controls/MyUserControl.ascx";
    
System.Web.UI.Page page = new System.Web.UI.Page();
System.Web.UI.UserControl control = page.LoadControl(pathToUserControl);
page.Controls.Add(control);
    
StringWriter writer = new StringWriter();
HttpContext.Current.Server.Execute(page, writer, false);
    
string renderedHtml = writer.ToString();

This method is mostly used to send the html back to the client browser using web services.

Strongly typed view in ASP.NET MVC

When passing the model to MVC you have a couple of options.

Option 1: Passing un-typed model to the view

public ActionResult Product(string id)
{
    var product = new Product();
    product.ID = id;
    product.Name = "iPhone";
    ViewData["product"] = product;
}

In your view you have to cast the value in ViewData to the correct type as follows:

<%
    var item = (Product)ViewData["product"];
%>
<div>
    ID: <%= item.ID %>
    Name: <%= item.Name %>
</div>

Option 2: Pass a strongly typed model to the view

// ViewData["product"] = product;
ViewData.Model = product;

The Page directive of your view must specify the type it expects as follows:

<%@ Page Title="blah" ... Inherits="System.Web.Mvc.ViewPage<Product>" %>

Sometimes you may need to pass more than one object to the view. You can handle this by creating a new class that encapsulates all objects you need and pass an instance of that class to the view instead.

Icon Finder

Very cool website that allows you to find icons

IconFinder.net

The site uses AJAX and has icons of varying shapes and sizes. Check it out.

Access a share by it’s DNS alias name

On the DNS server

1. Open DNS
2. Create an A record with the name you want and the IP address of the server that you want to alias
3. Close out and make sure you can ping this new alias from another machine
4. If you cannot ping, refresh the DNS changes manually by using ipconfig /flushdns

On the Windows Server

1. Open regedit from Run or Command Prompt
2. Navigate to HKEY_Local_Machine\System\CurrentControlSet\Services\LanmanServer\Parameters
3. Add or Edit DWORD "DisableStrictNameChecking"
4. Change the value to 1

Restart the server. You should now be able to access the server using it’s DNS alias.