Q:

how it works construction [QueryString("productID")]int? productId (c#)

Please tell me what it is, how it works construction
[QueryString("productID")]int? productId
Used as a parameter to a function
public IQueryable<Product> GetProduct([QueryString("productID")]int? productId)

My English is not very good, but I'll try to explain. If I was writing this function I would do this:
public IQueryable<Product> GetProduct()
{
    int? productId;
    string productIdStr = Request.QueryString["productID"];
    if (productIdStr != null)
        productId = int.Parse(productIdStr);
    else
        productId = null;

     ---------------------------------
}

But this code is done so very elegant, but I do not understand what it is
public IQueryable<Product> GetProduct([QueryString("productID")]int? productId)
{

}

A:

Based on your code, it looks like you're using the QueryString attribute that's part of ASP.NET 4.5 web forms model binding.
The attribute is described here: http://msdn.microsoft.com/en-us/library/system.web.modelbinding.querystringattribute(v=vs.110).aspx
This tutorial provides some background: http://www.asp.net/web-forms/tutorials/data-access/model-binding/using-query-string-values-to-retrieve-data

