Avatar billede basementjack Nybegynder
05. april 2005 - 10:24 Der er 6 kommentarer og
1 løsning

Pænere adresse

Hey

Vil gerne have adreseen altid ender på '/' eller '/?foo=bar' og det kan jeg også sagtens. Problemet er når jeg klikker på en knap, så kommer der altid filnavn på ('/default.aspx'), nogen let måde at undgå det?
Avatar billede burningice Nybegynder
05. april 2005 - 17:30 #1
:) det er desværre asp.net renderingen der gør det, men du kan godt gå ind og override det. Til det skal du have fat i der hvor at asp.net renderer start-tagget på din form, og ændre det fra default.aspx?hej=med til bare ?hej=med
Avatar billede basementjack Nybegynder
06. april 2005 - 10:33 #2
override af rendering er ikke lige min stærke side, har du et fx liggende?..
Avatar billede burningice Nybegynder
14. april 2005 - 09:45 #3
her et et eksempel på en egen implementation af HtmlForm. Denne addresserer ikke direkte problemet med Action, men så kan du da se hvordan du kommer igang med at lave din egen form.

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;

namespace MetaBuilders.WebControls.MasterPages {

    /// <summary>
    /// A server form that does not cause a problem by being inside a master page or other naming container.
    /// </summary>
    /// <remarks>
    /// When using this version of masterpages with asp.net 1.1, use this form instead of the standard form element for server forms. This is only required because of a bug in asp.net 1.1's version of __doPostBack.
    /// </remarks>
    public class NoBugForm : System.Web.UI.HtmlControls.HtmlForm {

        /// <summary>
        /// Creates a new instance of the NoBugForm class.
        /// </summary>
        public NoBugForm() {
            System.Version runtimeVersion = System.Environment.Version;
            this.doesDoPostBackBugExist = runtimeVersion.Major == 1 && runtimeVersion.Minor == 1 && runtimeVersion.Build == 4322;
        }

        /// <summary>
        /// Overriden to fix the bug.
        /// </summary>
        public override string UniqueID {
            get {
                if ( this.doesDoPostBackBugExist && this.isNamingContainerBreakoutRequired && this.NamingContainer != this.Page ) {
                    String fullUniqueID = base.UniqueID;
                    return fullUniqueID.Substring(fullUniqueID.LastIndexOf(":")+1);
                } else {
                    return base.UniqueID;
                }
            }
        }

        /// <summary>
        /// Overridden to fix the bug.
        /// </summary>
        /// <param name="writer"></param>
        protected override void RenderAttributes(HtmlTextWriter writer) {
            this.isNamingContainerBreakoutRequired = true;
            base.RenderAttributes (writer);
            this.isNamingContainerBreakoutRequired = false;
        }

        /// <summary>
        /// Overridden to fix the bug.
        /// </summary>
        /// <param name="writer"></param>
        protected override void RenderChildren(HtmlTextWriter writer) {
            this.isNamingContainerBreakoutRequired = true;
            base.RenderChildren (writer);
            this.isNamingContainerBreakoutRequired = false;
        }


       

        private Boolean doesDoPostBackBugExist = false;
        private Boolean isNamingContainerBreakoutRequired = false;
    }
}
Avatar billede basementjack Nybegynder
14. april 2005 - 14:11 #4
Ligger du ikke et svar også?
Avatar billede burningice Nybegynder
14. april 2005 - 14:23 #5
jeg fandt faktisk et eksempel på noget rendering:

protected override void RenderAttributes(System.Web.UI.HtmlTextWriter writer) {

            // From HtmlForm, with changes to Action
            writer.WriteAttribute("name", this.Name);
            this.Attributes.Remove("name");

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

            writer.WriteAttribute("action", "SKRIV DIN URL HER", true);
            this.Attributes.Remove("action");

            writer.WriteAttribute("id", this.ClientID);
           

            // From HtmlContainerControl
            this.ViewState.Remove("innerhtml");


            // From HtmlControl
            this.Attributes.Render(writer);
        }
Avatar billede burningice Nybegynder
14. april 2005 - 14:23 #6
svar
Avatar billede basementjack Nybegynder
14. april 2005 - 14:24 #7
Grazie. :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester