{"id":3734,"date":"2009-03-18T16:23:00","date_gmt":"2009-03-18T16:23:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/webdev\/2009\/03\/18\/asp-net-mvc-1-0-now-live\/"},"modified":"2009-03-18T16:23:00","modified_gmt":"2009-03-18T16:23:00","slug":"asp-net-mvc-1-0-now-live","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/asp-net-mvc-1-0-now-live\/","title":{"rendered":"ASP.NET MVC 1.0 now Live!"},"content":{"rendered":"<p>ASP.NET MVC 1.0 is now Live.&nbsp; You can download it right now <a href=\"http:\/\/go.microsoft.com\/fwlink\/?LinkId=144444\" target=\"_blank\" rel=\"noopener\">here<\/a>.&nbsp; Also check out Phil Haack&rsquo;s <a href=\"http:\/\/www.haacked.com\/archive\/2009\/03\/18\/aspnet-mvc-rtw.aspx\" target=\"_blank\" rel=\"noopener\">post<\/a> on the release.&nbsp; If you are new to MVC, please check out our <a href=\"http:\/\/blogs.msdn.com\/webdevtools\/archive\/tags\/ASP.NET+MVC+Framework\/default.aspx\" target=\"_blank\" rel=\"noopener\">previous posts<\/a> for more information and links to many useful blogs and resources.&nbsp; Alternatively, check out the <a href=\"http:\/\/www.asp.net\/mvc\" target=\"_blank\" rel=\"noopener\">official site<\/a> for tutorials, videos, and more.<\/p>\n<p>MSDN Documentation for MVC is also now available: <span><a href=\"http:\/\/go.microsoft.com\/fwlink\/?LinkId=145989\"><font color=\"#0000ff\">http:\/\/go.microsoft.com\/fwlink\/?LinkId=145989<\/font><\/a><\/span><\/p>\n<p>Since ASP.NET MVC RC1 we made some changes to the set of properties available to T4 templates &ndash; many names have changed (for clarity and consistency) and some properties are no longer available (because the same information is available through other properties).&nbsp; See the following table for the full list of properties available to templates:<\/p>\n<h5>Add Controller:<\/h5>\n<table class=\"\" cellspacing=\"0\" cellpadding=\"2\" width=\"900\" border=\"1\">\n<tbody>\n<tr>\n<td class=\"\" valign=\"top\" width=\"300\">\n<p align=\"center\"><strong>Property Name<\/strong><\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"299\">\n<p align=\"center\"><strong>Type<\/strong><\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"299\">\n<p align=\"center\"><strong>Description<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"\" valign=\"top\" width=\"300\">\n<p align=\"center\">ControllerName<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"299\">\n<p align=\"center\">System.String<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"299\">\n<p align=\"center\">The name of the Controller class, including the &lsquo;Controller&rsquo; suffix<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"\" valign=\"top\" width=\"300\">\n<p align=\"center\">Namespace<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"299\">\n<p align=\"center\">System.String<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"299\">\n<p align=\"center\">The namespace into which the Controller is being generated<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"\" valign=\"top\" width=\"300\">\n<p align=\"center\">AddActionMethods<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"299\">\n<p align=\"center\">System.Boolean<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"299\">\n<p align=\"center\">Indicates whether or not the user checked the option in the Add Controller dialog to get extra action methods<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"\" valign=\"top\" width=\"300\">\n<p align=\"center\">ControllerRootName<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"299\">\n<p align=\"center\">System.String<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"299\">\n<p align=\"center\">The name of the controller class without the &lsquo;Controller&rsquo; suffix<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h5>Add View:<\/h5>\n<table class=\"\" cellspacing=\"0\" cellpadding=\"2\" width=\"898\" border=\"1\">\n<tbody>\n<tr>\n<td class=\"\" valign=\"top\" width=\"298\">\n<p align=\"center\"><strong>Property Name<\/strong><\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"305\">\n<p align=\"center\"><strong>Type<\/strong><\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"293\">\n<p align=\"center\"><strong>Description<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"\" valign=\"top\" width=\"296\">\n<p align=\"center\">ViewName<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"309\">\n<p align=\"center\">System.String<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"291\">\n<p align=\"center\">The name of the view (without extension), as typed in the Add View dialog<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"\" valign=\"top\" width=\"295\">\n<p align=\"center\">Namespace<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"312\">\n<p align=\"center\">System.String<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"289\">\n<p align=\"center\">The default namespace of the view&rsquo;s parent folder<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"\" valign=\"top\" width=\"294\">\n<p align=\"center\">IsPartialView<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"315\">\n<p align=\"center\">System.Boolean<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"288\">\n<p align=\"center\">Evaluates to true if the user chose a partial view in the Add View dialog<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"\" valign=\"top\" width=\"293\">\n<p align=\"center\">IsContentPage<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"317\">\n<p align=\"center\">System.Boolean<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"287\">\n<p align=\"center\">Evaluates to true if the user is creating a view with a master page<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"\" valign=\"top\" width=\"292\">\n<p align=\"center\">MasterPageFile<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"320\">\n<p align=\"center\">System.String<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"286\">\n<p align=\"center\">Path to the master page the user chose in the dialog (to be used only when IsViewContentPage is true)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"\" valign=\"top\" width=\"291\">\n<p align=\"center\">PrimaryContentPlaceHolderID<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"321\">\n<p align=\"center\">System.String<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"285\">\n<p align=\"center\">Name of the primary content place holder into which the generated content will be placed. This is the content place holder id the user typed into the Add View dialog<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"\" valign=\"top\" width=\"291\">\n<p align=\"center\">ContentPlaceHolderIDs<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"322\">\n<p align=\"center\">System.Collections.Generic.List&lt;System.String&gt;<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"285\">\n<p align=\"center\">A list of all content place holder ID&rsquo;s in the master page, if a master page was chosen for this view<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"\" valign=\"top\" width=\"290\">\n<p align=\"center\">OutputFileExtension<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"323\">\n<p align=\"center\">System.String<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"284\">\n<p align=\"center\">The output file&rsquo;s extension (including the period)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"\" valign=\"top\" width=\"290\">\n<p align=\"center\">ViewDataTypeName<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"324\">\n<p align=\"center\">System.String<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"284\">\n<p align=\"center\">Name of the type to which a strongly-typed view is bound<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"\" valign=\"top\" width=\"290\">\n<p align=\"center\">ViewDataType<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"325\">\n<p align=\"center\">System.Type<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"284\">\n<p align=\"center\">This is a Type object representing the type to which a strongly-typed view is bound. It can be used to get information on the properties in the type and the like<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The following properties were removed: <br><\/p>\n<table class=\"\" cellspacing=\"0\" cellpadding=\"2\" width=\"900\" border=\"1\">\n<tbody>\n<tr>\n<td class=\"\" valign=\"top\" width=\"301\">\n<p align=\"center\"><strong>Property Name<\/strong><\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"298\">\n<p align=\"center\"><strong>Type<\/strong><\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"299\">\n<p align=\"center\"><strong>Description<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"\" valign=\"top\" width=\"301\">\n<p align=\"center\">IsViewPage<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"298\">\n<p align=\"center\">System.Boolean<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"299\">\n<p align=\"center\">This property was used to tell whether a page was a regular view page (that is, not a partial view and not a content page).&nbsp; However, the same information can be gathered by simply checking to see if IsPartialView and IsContentPage are both false.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"\" valign=\"top\" width=\"301\">\n<p align=\"center\">ViewDataTypeGenericString<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"298\">\n<p align=\"center\">System.String<\/p>\n<\/td>\n<td class=\"\" valign=\"top\" width=\"300\">\n<p align=\"center\">This property was used to output the generic clause for the &lsquo;Inherits&rsquo; attribute in the View&rsquo;s directive for strongly-typed views.&nbsp; For example, in C# it would output &ldquo;&lt;MyType&gt;&rdquo; and in VB it would output &ldquo;(Of MyType)&rdquo;.&nbsp; We moved this logic of outputting the generic clause to the T4 templates and instead added the &lsquo;ViewDataTypeName&rsquo; property to provide just the type name.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Have fun!<\/p>\n<p>Abhishek Mishra | Software Design Engineer | Visual Studio Web Developer<\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>ASP.NET MVC 1.0 is now Live.&nbsp; You can download it right now here.&nbsp; Also check out Phil Haack&rsquo;s post on the release.&nbsp; If you are new to MVC, please check out our previous posts for more information and links to many useful blogs and resources.&nbsp; Alternatively, check out the official site for tutorials, videos, and [&hellip;]<\/p>\n","protected":false},"author":404,"featured_media":58792,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[197],"tags":[31,7333,7325,7334,7288,7328,7286,7327,7302,7316,7319,7292,7267,7268],"class_list":["post-3734","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aspnet","tag-asp-net","tag-asp-net-mvc","tag-asp-net-mvc-1-0-rc","tag-asp-net-mvc-1-0-rc2","tag-asp-net-mvc-framework","tag-mix","tag-mvc","tag-t4","tag-visual-studio-2008","tag-visual-studio-2008-sp1","tag-visual-web-developer","tag-vs2008","tag-vwd","tag-web"],"acf":[],"blog_post_summary":"<p>ASP.NET MVC 1.0 is now Live.&nbsp; You can download it right now here.&nbsp; Also check out Phil Haack&rsquo;s post on the release.&nbsp; If you are new to MVC, please check out our previous posts for more information and links to many useful blogs and resources.&nbsp; Alternatively, check out the official site for tutorials, videos, and [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/3734","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/404"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=3734"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/3734\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/58792"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=3734"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=3734"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=3734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}