Ja, det går. Men frågan är om det är en sådan bra lösning. Vad är det du ska göra?
Hej
Kan man lagra ett objekt i ett hiddenfield för att skicka det till en annan sida och där arbeta med det?
7 svar · 443 visningar · startad av Addeladde
Hej
Kan man lagra ett objekt i ett hiddenfield för att skicka det till en annan sida och där arbeta med det?
Ja, det går. Men frågan är om det är en sådan bra lösning. Vad är det du ska göra?
Nej, allt som transporteras är ju text...ASP.NET kan mycket, men att trolla med HTTP-standarden ingår inte...
Om ditt objekt är serialiserbart (serializable) så kan du dock du lagra en representation av objektet i ett hiddenfält eller i viewstate, och sedan deserialisera det på andra sidan.
Men vad är det egentligen du vill göra?
Jag har en klass som heter Tid och den hanterar tid rapporterad på ett företag.
Varje tidspost sparas i en tabell. Den unika nyckeln för består av 5 poster. anvandarid, kund, projekt, underprojekt, arbdag, period.
(krånglig nyckel men den går inte att ändrå på eller får inte ändras.)
Jag ska rada upp ett formulär som är dynamiskt dvs man kan välja att lägga till olika projekt i sin lista för tidsrapportering.
Den ska visa alla aktiva kunder med projekt som man jobbar på samt alla 7 dagar i veckan. På varje dag ska man kunna fylla i timmar på varje kund. Detta ska sedan sparas eller uppdateras i databasen.
Enkelt exempel:
Måndag Tisdag Onsdag Torsdag Fredag Lördag Söndag
Kund1 Projekt1 Delprojekt1 [_______] [_______] [_______] [_______] [_______] [_______] [_______]
Kund2 Projekt2 Delprojekt2 [_______] [_______] [_______] [_______] [_______] [_______] [_______]
Kund4 Projekt1 Delprojekt1 [_______] [_______] [_______] [_______] [_______] [_______] [_______]
Kund8 Projekt2 Delprojekt2 [_______] [_______] [_______] [_______] [_______] [_______] [_______]
Tänkte att det kunde vara smart att i ett hiddenfield spara objektet till varje ifyllnadsruta. Detta eftersom den unika nyckeln är så lång.
Fälten ska ju sedan hämtas dynamiskt och sedan sparas.
En variant är kanske att antingen ha ett hiddenfält per attribut i nyckeln per rad, eller att kontatinera informationen med någon avgränsare (som aldrig förekommer i värdena) emellan. Alltså tex:
<input type="hidden" name="fieldName" value="<anvandarid_kund_projekt_underprojekt_arbdag_period>">
>">
När du sedan hämtar infon kan du dela upp value:t i delar avgränsade av _ och du får tillbaka din unika nyckel.
Visst har jag tänkt på den lösningen dock så är typ alla nycklar av typen char(8) så de kan innehålla vad som helst. Finns dessutom över 10 000 poster på vissa av nycklarna.
Man kan ju även har flera hiddenfield också.
Addeladde skrev:
Visst har jag tänkt på den lösningen dock så är typ alla nycklar av typen char(8) så de kan innehålla vad som helst.
Hur sannolikt är det att de tex innehåller strängen '##' eller '¤¤' eller något annat udda?
# finns det vet jag men samtidigt så är det teoretiskt möjligt att spara ett kundid med det tecknet så det är ingen bra lösning.
Har fått escape tecknen för att t.ex. kunna skicka ett kundid in i en javascript funktion just för att vissa tecken förstörde funktionen.