Remove My ASP.NET Application master page - c#

How do I remove My ASP.NET Application master page?
It appears by default on output screen of Microsoft Visual Studio 2010

Change the MasterPageFile of your Default.aspx (or whatever your aspx file is). You can choose to create your own master file or remove the content control from aspx
<%# Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TempTest._Default" %>

Create a new Master Page suppose MasterPage.master
Open Default.aspx file change MasterPageFile property
From <%# Page MasterPageFile="~/Site.master"%>
To <%# Page MasterPageFile="~/MasterPage.master" %>
Update ContentPlaceHolderID with the ID which is provided in MasterPage.master file.

Related

ASP.Net Button Click Event Handler not auto generated in code-behind, placed in script tags on page instead

I've been wrestling with this all day. Opening up an old web application trying to add a method to my page (default.aspx) and have my code behind default.aspx.cs which is referenced in the page:
<%# Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="HoursWorked._Default" %>
<%# Import Namespace="HoursWorked" %>
Some of the symptoms I'm having are intellisense not "seeing" any of the controls from the page, when I double click the button control in the Designer, it creates the following:
<script runat="server">
protected void ButtonShowUnderEight_Click(object sender, EventArgs e)
{
}
</script>
Code behind starts off as (after all of my using statements):
namespace HoursWorked
{
public partial class _Default : Page
{
Any ideas?
Thanks,
Tim
In my case (VS2013) what helped was based on this link:
Remove CodeBehind="yourfile.aspx.cs" from the first line of your
.aspx file which will cause the c# event handler code to be placed into
your .aspx source file instead.
<%# Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="HoursWorked._Default" %>
So you are left with:
<%# Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" Inherits="HoursWorked._Default" %>
Now double-click the control in the Designer which should now pop the event handler code inside script tags within your aspx.
Next, restore the CodeBehind="yourfile.aspx.cs" you had removed in the first step.
<%# Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="HoursWorked._Default" %>
Finally, double-click the control which now pops the event handler code inside yourfile.aspx.cs!
Replace
<%# Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="HoursWorked._Default" %>
with
<%# Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="._Default" %>
It does not like when you inherit
Inherits="HoursWorked.Default"
P.S, you can also remove
<%# Import Namespace="HoursWorked" %>
I ended up going back to my original local solution instead of trying to use the ones on my dev and prod servers. No clue why they were having this issue compared to my original local solution.
Not going to help anyone else having this issue, but instead of investing more time trying to solve this... I'm sure if I compared everything in my solution folder, something might stick out.
Tim

Content page not able to access controls after changing the name of the page

I have a web application project in VS2013 with a Master Page and some content pages. My master page header is:
<%# Master Language="C#" AutoEventWireup="true" CodeBehind="MasterPage.master.cs" Inherits="MyProject.MasterPage" %>
I then right click on the Master Page in the solution explorer and select "Add Content Page". This produces a content page like the following for me:
<%# Page Title="" Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="True" CodeBehind="WebForm1.aspx.cs" Inherits="MyProject.WebForm1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
</asp:Content>
What I do then is right click this "WebForm1" in the solution explorer and change the name to "Login"
This changes the header in the content page to:
<%# Page Title="" Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="True" CodeBehind="Login.aspx.cs" Inherits="MyProject.WebForm1" %>
Looks fine except it still says Inherits="MyProject.WebForm1" despite that no longer being the name of the content page.
So I figure, "OK I can just change Inherits="MyProject.WebForm1" to Inherits="MyProject.Login". Big mistake, because now I cannot reference any of the controls like TextBox, Label, etc. in my code behind file. I get a list of errors all along the lines of:
The name 'controlname' does not exist in the current context
So it looks like my page can no longer find the class for the controls correctly.
I tried deleting Login.aspx.designer.cs and then recreating it by going to Project -> Convert to web application but that did not work.
So long story short, my code works fine if I use the Inherits="MyProject.WebForm1" despite my page now being called Login. I also tried this with all my other pages and it is the same story.
Is this some kind of bug? Or is my method of adding content pages the problem?
Most likely in your code behind you have this:
namespace MyProject
{
public class WebForm1
This is what your page inherits in terms of the web site prokject, and that is what should be in the "Inhertis" attribute. Note that full class name, including namespace, is expected there.
So if you want to rename your page file - make sure you rename the class as well. Visual Studio does not do this automatically.

ASP.NET error on the default.cs

I have my html code in the default.aspx page and I am not able to access the onclick of button event on my default.cs page. I am inheriting System.Web.UI.Page in my default.cs page. Is there any way I can get the onclick events in the .cs file
Make sure that your .aspx file contains correct CodeBehind and Inherits:
<%# Page Title="" Language="C#" AutoEventWireup="true" CodeBehind="Default.cs" Inherits="Default" %>
If the class of the page specified in Default.cs is within a namespace, make sure to include that into Inherits as well. Like this:
<%# Page Title="" Language="C#" AutoEventWireup="true" CodeBehind="Default.cs" Inherits="MyNamespace.Default" %>

Create a partial class with inheritance in aspx without recompiling

I am really new to C#/VB as a web coding language so apologies early if this is rudimentary
I have a vendor .NET solution i need to add an .aspx page to, which I've managed to do, but there are missing HTML items that are placed by backend .vb file code (we have the uncompiled code as well as the site code)
so for example, Report.aspx
uncompiled
<%# Page Language="vb" AutoEventWireup="false" Inherits="jobber.VU.Report"
CodeFile="Report.aspx.vb" %>
<%# Register TagPrefix="VU" Namespace="jobber.VU.Controls" %>
compiled
<%# page language="vb" autoeventwireup="false" inherits="jobber.VU.Report,
App_Web_report.aspx.cdcab7d2" enableEventValidation="false" %>
<%# Register TagPrefix="VU" Namespace="jobber.VU.Controls" %>
the VB backend
Namespace jobber.VU
Partial Class Report
Inherits ActionBase
End Class
End Namespace
How do I replicate that in just an ASPX page?
I tried this
<%# page language="vb" AutoEventWireup="false" Debug="true" %>
<%# Register TagPrefix="VU" Namespace="jobber.VU.Controls" %>
<%# Import Namespace="jobber.VU.ActionBase" %>
<VU:metatags id="headers1" format="none" runat="server"></VU:metatags>
and VU.Controls comes back fine, but the ActionBase class is not executing
I also attempted a <script runat=server, but it never took off the ground
You can have multiple pages inherit from the same page. So if you want to duplicate the functionality of the 'jobber.VU.Report page', just add a new page and inherit from it.

user control not rendering content of ascx

i thought this was a simple issue until i started searching for answers and realised it's so simple i'm the only one who has it
my user control isnt displaying anything. what am i doing wrong? (besides letting this be my life...)
control:
<%# Control Language="C#" AutoEventWireup="true" CodeBehind="ctrl.ascx.cs" Inherits="proj.UserControls.ctrl" %>
asdjkldasfjasdfljdfasjklasdfjkl
use:
<%# Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="page.aspx.cs" Inherits="proj.Admin.page" %>
<%# Register assembly="proj" namespace="proj.UserControls" tagprefix="cc1" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<cc1:ctrl ID="test" runat="server" />
</asp:Content>
Change:-
<%# Register assembly="proj" namespace="proj.UserControls" tagprefix="cc1" %>
To
<%# Register TagPrefix="cc1" TagName="ctrl" Src="/path/to/ctrl.ascx" %>
You're missing TagName, which represents the text following the colon in the control declaration. You're also not telling the engine where to find the source file ( Src attribute ). Change /path/to to represent the path from root to your control.
IF you have created custom control then you should add reference of the dll of your custom control ( from choose items from ToolBox of Visual Studio). and then Use the following tag in the page :
<%# Register assembly="proj" namespace="proj.UserControls" tagprefix="cc1" %>
If you created User Control then add the following line in your page:
<%# Register src="~/UserControls/ctrl.ascx" TagName="ctrl" tagprefix="cc1" %>
instead of
<%# Register assembly="proj" namespace="proj.UserControls" tagprefix="cc1" %>
use
<%# Register src="~/UserControls/ctrl.ascx" TagName="ctrl" tagprefix="cc1" %>
Make sure you haven't set visible="false" on a panel or div containing your control.
That would've saved me a good hour.
I had to add a new user control to an existing project that already contained a lot of them, and wondered why mine was not rendering. Turns out you can also specify this in Web.config, under configuration, system.web, pages, like this:
<controls>
<add tagPrefix="cc1" tagName="ctrl" src="~/UserControls/ctrl.ascx" />
...which will register the control for the whole project, so you don't have to specify this on every page. Useful for controls that are heavily reused.

Categories

Resources