WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Lite .Net hjälp hittåt tack... =) (https://www.wn.se/forum/showthread.php?t=9015)

Robert 2005-07-22 22:44

Har försökt använda en klass som jag hittade på webben och översätta den till vb.net men eftersom jag kan noll c# så undrar jag om någon kan se om jag har gjort något galet? Den verkar vara så simpel men den vill inte fungera så jag försöker eliminera åtminstonde själva klassen som felkälla. Det klassen gör är att ta över form-objektet och ta bort action-parametern ifrån densamma.

Så här såg den ut i c# (asp.net):
Kod:

namespace ActionlessForm {
 *public class Form : System.Web.UI.HtmlControls.HtmlForm
 *{
 * * protected override void RenderAttributes(HtmlTextWriter writer)
 * * {
 * * * *writer.WriteAttribute("name", this.Name);
 * * * *base.Attributes.Remove("name");

 * * * *writer.WriteAttribute("method", this.Method);
 * * * *base.Attributes.Remove("method");

 * * * *this.Attributes.Render(writer);

 * * * *base.Attributes.Remove("action");

 * * * *if (base.ID != null)
 * * * * * writer.WriteAttribute("id", base.ClientID);
 * * }
 *}
}

... och så här är min vb (asp.net) version:

Kod:

Namespace ActionlessForm

        Public Class Form
 *Inherits System.Web.UI.HtmlControls.HtmlForm

 *Protected Overloads Sub RenderAttributes(ByVal HtmlTextWriter, ByVal writer)

 *        writer.WriteAttribute("name", Me.Name)
 *        MyBase.Attributes.Remove("name")

 *        writer.WriteAttribute("method", Me.Method)
 *        MyBase.Attributes.Remove("method")

 *        Me.Attributes.Render(writer)

 *        MyBase.Attributes.Remove("action")

 *        If Not IsDBNull(MyBase.ID) Then
 * *writer.WriteAttribute("id", MyBase.ClientID)
 *        End If

 *End Sub

        End Class

End Namespace


Eddie 2005-07-22 23:22

Protected Overloads Sub RenderAttributes(ByVal HtmlTextWriter, ByVal writer)
borde väl vara
Protected Overloads Sub RenderAttributes(ByVal HtmlTextWriter writer)

Robert 2005-07-22 23:39

Mja, det går väl inte att skriva så?

Däremot så fick jag byta ut "override" då Visual Studio påpekar att jag minsann inte får använda "override" på en basklass, utan måste använda "overloads" istället. Har inte riktigt koll på skillnaden..

Eddie 2005-07-22 23:52

override är väl c# medan overloads är vb.net är det inte så enkelt?

nu är det ju c# jag skriver så är inte helt inne på vb.net men är det såhär man skriver:
Protected Overloads Sub RenderAttributes(ByVal writer As HtmlTextWriter)

Robert 2005-07-23 00:00

overrides används i vb också, men har själv aldrig använt mig av overloads... tänkte om felet låg där.

Jaja, då förstår jag att det var en deklaration, ser faktiskt det om jag tänker efter lite =)
Men det blir iaf fel när jag ska använda mig av min nya fina form-tag på aspx-sidan, så jag får väl leta vidare efter vad som kan vara problemet.

Eddie 2005-07-23 00:17

Vad får du för fel då? Och hur försöker du använda den?

Robert 2005-07-23 00:23

Längst upp på sidan under pagedirektivet:

Kod:

<%@ Register TagPrefix="ActionlessForm" Namespace="ActionlessForm" Assembly="Nutrio" %>
och sedan kör jag istället för <form>-taggen:

Citat:

<ActionlessForm:Form id="frm" method="post" runat="server">
... med tillhörande avslutningstagg längre ner på sidan.


felet jag får är :


Citat:


Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.

Parser Error Message: Could not load type ActionlessForm.Form from assembly nutrio, Version=1.0.2029.37157, Culture=neutral, PublicKeyToken=null.

Source Error:


Line 27: <body ms_positioning="GridLayout">
Line 28:
Line 29: <ActionlessForm:Form id="frm" method="post" runat="server">
Line 30:
Line 31:



jonny 2005-07-23 00:35

Och du har alla filer på rätt ställe?

Robert 2005-07-23 00:42

Tja, klassen får man väl lägga vart man vill, men den ligger iaf i en egen fil och i en egen map i webprojektet.

Och klassen dyker upp om jag försöker använda den i code-behind, så den finns där iaf... :)

Robert 2005-07-23 15:46

Ahhh, kom på det!! Namespace'n var lite felaktigt trots att jag dubbelkollat flera gånger. Jäkligt sjukt att man missar en sak som man verkligen sitter och kollar på! :)

Skönt iaf att det fungerar. Nu får jag äntligen en form-tagg som inte skriver ut action-parametern. :)


Alla tider är GMT +2. Klockan är nu 06:20.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson