Generic Base Classes in ASP.Net MVC

Last time, we saw that there are severe limitations in creating ASPX pages which inherit generic base classes.  Many readers were probably wondering how ASP.Net MVC works around this limitation.  In ASP.Net MVC views, people write pages like this all the time:

<%@ Page Language="C#" 
    Inherits="ViewPage<IEnumerable<DataLayer.Product>>" %>

ASP.Net MVC includes its own workaround for these limitations.  The Web.config file in the Views folder of an ASP.Net MVC project registers a PageParserFilter:

<pages
    validateRequest="false"
    pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    ...>
    ...
</pages>

PageParserFilter is one of ASP.Net’s lesser-known extensibility points.  It can intercept different parts in the parsing process for an ASPX page and modify the page.  The MVC framework’s ViewTypeParserFilter will check whether the page’s inherits="" attribute contains ( or a < characters; these characters can only appear in C# or VB.Net generic types, but not in the CLR’s native syntax.

If the inherits="" attribute contains these characters, it will save the attribute’s original value, then replace it with ​ViewPage (Or ViewMasterPage or ViewUserControl, as appropriate).  This way, the rest of the built-in ASP.Net parser will see a normal type name that it knows how to parse. After the page finishes parsing, an internal ControlBuilder registered on MVC’s base types (ViewPage, ViewMasterPage or ViewUserControl) will replace the base type in the generated CodeDOM tree with the original value of the inherits="" attribute.

The one problem with the hack is that it leaves the ASPX parsing engine unaware of the page’s actual base type.  Therefore, if you make a page that inherits a generic base class with additional properties, you won’t be able to set those properties in the <%@ Page declaration (since the ASPX parser won’t know about them).  If you inherit a non-generic type, this mechanism will not kick in and page properties will work fine.

20 comments:

It's good that someone is writing about it. Stella

This comment has been removed by the author.

In my opinion, this information will help you to learn more bout writing American dream essay. It will help you to achieve success in college

mr jatt Mp3 New Punjabi Song,Single Tracks Latest song download also Listen Latest Music Albums Online in High Quality at Mrpendus.in
mr jatt

Very impressive blog post, I subscribed your blog for your future post. I also have some useful link to share here mcafee activate |

mcafee.com/activate |

norton.com/setup |

norton setup |

office.com/setup |

Good Work, i like the way you describe this topic, keep going. i would like to share some useful security links here please go through www.mcafee.com/activate |

www.norton.com/setup |

www.office.com/setup |

office setup |

This is really great work , Thank you for sharing such a useful information here in the blog. I have something to share here mcafee download |

norton download |

microsoft office download |

office download |

دانلود آهنگ جدید ایرانی و ترکی با بهترین کیفیت و لینک مستقیم از سایت موزیکدل

If i will tell you , I was really in need of MVC's. I have been assigned a project which uses MVC. Thank you for sharing this article.
office.com/setup

asp.net is the frame work. you develop GUI on the asp.net very easily.

office.com/setup

Have any security issues for now? If so, McAfee can provide the solution. Luckily, you don’t need to experience a crash before you activate McAfee. Remember, once you use the internet, you’re automatically prone to attacks.

Almost everyone with a smartphone or computer accesses the internet these days? If you read this, it means you also need reliable antivirus protection.
mcafee/activate mcafee.com/activate product key

So, let’s consider the reasons McAfee is the best among other antivirus brands on the market.


Copy and send the download link to your email address if you want to use it on another device

Wait for the download to complete; then, open the file on your device, follow the screen prompt to install.

After the general overview, let’s see how to install the norton.com setup on different devices.
Safety For Mobile Devices

Help block programmers from your gadgets, keep your online movement hidden and secure your character, across the board. It's rarely been simpler
Cloud Computing With Norton
www.norton.com/setup

Gadget security helps block programmers and Norton Secure VPN encourages you keep your online action hidden.

Using your browsers, type
After the page opens, tap on the setup icon
Move to the search option to fill in your printer type
Tap on the Go option, then click the start button
Prepare your printer per the instructions on the screen
Wait for the download button to appear
Now, tap on the download icon
Wait for the download to end
Double click to open the file
Click yes when the control panel opens
Here comes the start set up window
Now, that you’ve downloaded the Cannon printer driver to your Mac computer,
let’s figure out how to install it.Enter your printer model
Click on the Go icon
Tap on Start
Now check if your printer is powered to make it ready
Click on the download to start downloading
Wait for the download to complete then open the ‘exe’ file
Once the account control window opens, tap on the
Yes button to proceed to set up the processij.start.cannon set up

There are numerous approaches to watch Netflix on your TV – all you require is a gadget with the Netflix application! The Netflix application is accessible on many Smart TVs, game consoles, streaming media players, set-top boxes, and Blu-beam players. You can discover more data about viable gadgets and brands at netflix.com/activate, and to enroll visit www.netflix.com/activate or read on to check whether your TV is now Netflix-prepared.

www.netflix.com register
www.netflix.com/redeem
netflix activation code
netflix.com.au/redeem
netflix.com/tv8

Post a Comment