का विस्तार नहीं करता है मैंने हाल ही में विजुअल स्टूडियो 2008 में एक वेब प्रोजेक्ट प्रोजेक्ट में एक वेबसाइट प्रोजेक्ट को परिवर्तित किया है। मुझे अंत में मिला यह संकलन करने, और प्रथम पृष्ठ (लॉगिन स्क्रीन) सामान्य रूप में प्रदर्शित किया है, लेकिन फिर जब यह Default.aspx पृष्ठ पर पुनः निर्देशित, मुझे एक त्रुटि प्राप्त:पार्सर त्रुटि: '_Default' को यहां अनुमति नहीं है क्योंकि यह कक्षा 'System.Web.UI.Page' और मास्टरटाइप घोषणा
Parser Error Message: 'SOME.NAMESPACE.MyApplicationName.WebApplication._Default' is not allowed here because it does not extend class 'System.Web.UI.Page'.
अपने पृष्ठों के सभी एक वर्ग कहा जाता है से विरासत "बेसपेज" जो System.Web.UI.Page को बढ़ाता है। स्पष्ट रूप से समस्या उस वर्ग के साथ नहीं है क्योंकि login.aspx पृष्ठ त्रुटि के बिना प्रदर्शित होता है, और यह उस बेसपृष्ठ से भी प्राप्त होता है।
लॉगिन पृष्ठ सहित साइट पर सभी पृष्ठ, मास्टरपृष्ठ के बच्चे हैं।
कुछ परीक्षणों के बाद, मैंने यह निर्धारित किया है कि यह क्या है जो त्रुटि का कारण बनता है (हालांकि मुझे नहीं पता कि यह क्यों करता है)।
उन सभी पृष्ठों पर जहां मेरे पास निम्न टैग है, त्रुटि नहीं होती है।
<%@ MasterType VirtualPath="~/MasterPages/MainMaster.master" %>
उन सभी पृष्ठों पर जिनमें पंक्ति नहीं है, त्रुटि होती है। यह पूरे पूरे आवेदन में है। मेरे पास केवल उन पृष्ठों पर टैग है जहां मास्टरपेज पर नियंत्रण संदर्भों की आवश्यकता है।
तो, मैंने सोचा कि मैं बस अपने सभी पृष्ठों पर उस पंक्ति को जोड़ूंगा और इसके साथ किया जाएगा। लेकिन जब मैं उस लाइन जोड़ने के लिए, मैं एक संकलन त्रुटि मिलती है: 'वस्तु' 'मास्टर'
यह त्रुटि ASPX पेज है कि मैं जोड़ लिया है के साथ जुड़े designer.cs फ़ाइल से आ रहा है के लिए एक परिभाषा शामिल नहीं है "मास्टर टाइप" घोषणा।
मैंने डिजाइनर फ़ाइल के पुनर्निर्माण को मजबूर कर दिया है, लेकिन यह कुछ भी नहीं बदलेगा। मैंने login.aspx (काम कर रहे) और default.aspx (काम नहीं कर रहे) के बीच डिजाइनर फ़ाइलों में मास्टर संदर्भ की सामग्री की तुलना की लेकिन वे बिल्कुल वही हैं।
चूंकि मैं वास्तव में इसे "मास्टर टाइप" घोषणा के बिना काम करने के लिए काम करना चाहता हूं, और चूंकि "फिक्स" वैसे भी काम नहीं कर रहा है, क्या किसी को पता है कि "मास्टर टाइप" घोषणा क्यों नहीं है एएसपीएक्स फ़ाइल पर पार्सर त्रुटि का कारण बनता है? क्या इसे ठीक करने का कोई तरीका है?
उदाहरण कोड:
Login.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPages/MainMaster.master" AutoEventWireup="true" Inherits="SOME.NAMESPACE.MyApplicationName.WebApplication.Login" Codebehind="Login.aspx.cs" %>
<%@ MasterType VirtualPath="~/MasterPages/MainMaster.master" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder" Runat="Server">
<table>
<tr>
<td>
<asp:UpdatePanel ID="upLogin" runat="server">
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server" DefaultButton="Login1$LoginButton">
<asp:Login ID="Login1" runat="server" LoginButtonStyle-CssClass="button"
TextBoxStyle-CssClass="textBoxRequired"
TitleTextStyle-CssClass="loginTitle" >
</asp:Login>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="upPasswordRecovery" runat="server">
<ContentTemplate>
<asp:PasswordRecovery ID="PasswordRecovery1" runat="server"
SubmitButtonStyle-CssClass="button" TitleTextStyle-CssClass="loginTitle"
SuccessText="Your new password has been sent to you."
UserNameInstructionText="Enter your User name to reset your password." />
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
</table>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="SideBarPlaceHolder" Runat="Server">
<h2>Login</h2>
<asp:Button ID="btnCreateAccount" runat="server" Text="Create Account" OnClick="btnCreateAccount_Click" CausesValidation="false" />
</asp:Content>
Login.aspx.cs:
यहाँ login.aspx और login.aspx.cs जो त्रुटि के बिना काम कर रहा है के लिए कोड है
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SOME.NAMESPACE.MyApplicationName.WebApplication;
using SOME.NAMESPACE.MyApplicationName.Bll;
namespace SOME.NAMESPACE.MyApplicationName.WebApplication
{
public partial class Login : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
Login1.Focus();
}
protected void btnCreateAccount_Click(object sender, EventArgs e)
{
Page.Response.Redirect("~/CreateUser/default.aspx");
}
}
}
यहां डिफ़ॉल्ट.aspx और default.aspx.cs के लिए कोड है जो पार्सर त्रुटि फेंक रहा है जब एक वेब ब्राउज़र में देखे गए:
Default.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPages/MainMaster.master" AutoEventWireup="True" Inherits="SOME.NAMESPACE.MyApplicationName.WebApplication._Default" Codebehind="Default.aspx.cs" %>
<%@ MasterType VirtualPath="~/MasterPages/MainMaster.master" %>
<asp:Content ID="MainContent" ContentPlaceHolderID="ContentPlaceHolder" Runat="Server">
<div class="post">
<h2 class="title">Announcements</h2>
<p class="meta">Posted by Amanda Myer on December 15, 2009 at 10:55 AM</p>
<div class="entry">
<p>The MyApplicationName CMDB will be down for maintenance from 5:30 PM until 6:30 PM on Wednesday, December 15, 2009.</p>
</div>
<p class="meta">Posted by Amanda Myer on December 01, 2009 at 1:23 PM</p>
<div class="entry">
<p>The MyApplicationName CMDB is officially live and ready for use!</p>
</div>
</div>
</asp:Content>
<asp:Content ID="SideBarContent" ContentPlaceHolderID="SideBarPlaceHolder" Runat="Server">
<img src="images/MyApplicationName.jpg" alt="MyApplicationName Gremlin" width="250"/>
</asp:Content>
Default.aspx.cs
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using SOME.NAMESPACE.MyApplicationName.Bll;
using SOME.NAMESPACE.MyApplicationName.WebApplication;
public partial class _Default : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
धन्यवाद!