Gå til innhold

ASP: Hvordan videresende den rette url? Stikkord: C#, querystring


Anbefalte innlegg

Hei!

 

Jeg har to ImageButton. Når jeg klikker imagebutton "melk", vil jeg at response.redirect skal ha urlen Default.aspx?anledning=an&matintoleranse=melk.

 

Så, når jeg klikker imagebutton "egg", ønsker jeg at urlen skal vise Default?aspx?anledning=an&matintoleranse=melk&mati ntoleranse=egg

 

Deretter, når jeg klikker imagebutton "egg", ønsker jeg at urlen skal vise

Default?aspx?anledning=an&matintoleranse=melk

 

Desverre, med min kode, vises det i stedet Default.aspx?anledning=an&matintoleranse=melk,e gg&matintoleranse=melk når jeg klikker på "egg" igjen.

 

Hva er i veien?

 

protected void imgBtnMelk_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
	string anledning = lblanledning.Text;
	string url = "Default.aspx?anledning=an";
	string check = "empty";

	foreach (string var in Request.QueryString)
	{
		if (Request.QueryString[var] != "" & var == "matintoleranse" 
			& Request.QueryString[var] != "melk")
		{
			url += "&matintoleranse=" + Request.QueryString[var];
		}
		if (Request.QueryString[var] == "melk")
		{
			check = "removed";
		}
	}
	if (check != "removed")
	{
		url += "&matintoleranse=melk";
	}
	Response.Redirect(url); 
}
protected void imgBtnEgg_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{

	string anledning = lblanledning.Text;
	string url = "Default.aspx?anledning=an";
	string check = "empty";

	foreach (string var in Request.QueryString)
	{
		if (Request.QueryString[var] != "" & var == "matintoleranse"
			& Request.QueryString[var] != "egg")
		{
			url += "&matintoleranse=" + Request.QueryString[var];
		}
		if (Request.QueryString[var] == "egg")
		{
			check = "removed";
		}
	}
	if (check != "removed")
	{
		url += "&matintoleranse=egg";
	}
	Response.Redirect(url); 
}

Endret av doll
Lenke til kommentar
Videoannonse
Annonse

hvorfor kan du ikke sette .Tag = "egg" og .Tag = "melk", og så gjøre det så enkelt som:

 

Response.Redirect("Default.aspx?matintoleranse=" + (sender as ImageButton).Tag);

?

 

Sånn i stedet for 5 km med kode, mener jeg...

 

edit: typo. Utestet, men prinsippet er der...

Endret av Manfred
Lenke til kommentar
  • 3 måneder senere...

1. Du prøvar å samanlikne string-objekt med ==. Prøv med Equals-metoden i staden.

 

2. Å ha 2x "matintoleranse"-variablar i adressefeltet er ulogisk - ein variabel kan kun ha ein verdi.

 

3. Det må vel vere lettare å bruke boolean checked i staden for å behandle den som ein streng? Pga. punkt 1 vil også dette ikkje fungere som tiltenkt i den nederste if-spørringa di.

 

Ellers likar eg bedre Manfred sin tenkemåte. Då slepp du òg å ha to separate metodar.

Endret av Arve Systad
Lenke til kommentar
  • 2 uker senere...

Mitt våkne blikk la merke til at noen nevnte .TAG. Jeg har lenge sett denne greia men aldri helt vurdert hva den gjør da jeg ikke kjenner igjen uttrykket fra andre språg. Kan selvsagt studere MSDN, men er det noen som kan, på godt norsk og kort fortalt si hva denne gjør?

Endret av HDSoftware
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...