/ Forside/ Teknologi / Udvikling / .Net / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
.Net
#NavnPoint
Harlekin 491
Klaudi 390
Kortoverv.. 360
refi 310
MatrixRev.. 300
granner01 210
Soren_Ste.. 200
Nordsted1 180
miritdk 137
10  piaskov 110
html-tags i TextBox
Fra : ps080171
Vist : 2566 gange
35 point
Dato : 13-02-05 15:39

Hvordan får man en TextBox til at acceptere html-tags?

Problemet illustreres her:

http://www.spanager.dk/gastebogentry.aspx

Prøv at indtaste et html-tag, f.eks. <br>. Så giver compileren denne fejl:

System.Web.HttpRequestValidationException: Der blev konstateret en potentielt farlig værdi for Request.Form fra klienten (ferieBox="<br").

 
 
Kommentar
Fra : molokyle


Dato : 13-02-05 20:22

Vil du parse (fortolke) HTML koden der indtastes af klienten eller blot gengive den ?

Hvis du blot vil gengive den, må du vel skanne tekststrengen for værdierne '<' og '>' og erstatte dem med &lt; og &gt;

Hvis dit textarea har id="hilsenbox", kan du nå dette element via DOM funktionen document.getElementById(id); og manipulere tekststrengen vha. javascript.

Mht. til at parse de af brugeren indtastede tags ? Må jeg umiddelbart melde pas, men mon ikke du så skal generere en ny side med det indtastede indhold i enten ASP eller PHP ?

Jeg skal ærligt indrømme jeg ikke har en dyt forstand på DotNet

</MOLOKYLE>

Kommentar
Fra : molokyle


Dato : 13-02-05 20:24
Kommentar
Fra : ps080171


Dato : 13-02-05 21:42

Jeg ønsker vel så at gengive koden, for jeg vil gemme den i en database. Jeg arbejder på et simpelt CMS-system, og ideen er, at man skal kunne indtaste - i dette tilfælde - en ferieplan, og der skal man kunnne angive <br/>, <i>, <b> osv.

Koden ser således ud:

<%@ Page Language="C#" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.OleDb" %>
<script runat="server">

void ferieopdater(Object obj, EventArgs e)
{

string ferie = ferieBox.Text;

OleDbConnection forbindelsesObjekt = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Ferieplan.mdb"));
try
{
OleDbCommand kommandoObjekt = new OleDbCommand();
kommandoObjekt.CommandText = "Update Ferie SET plan = '"+ferie+"' WHERE Id=1";
forbindelsesObjekt.Open();
kommandoObjekt.Connection = forbindelsesObjekt;
int result = kommandoObjekt.ExecuteNonQuery();
forbindelsesObjekt.Close();

}
catch(Exception u)
{
forbindelsesObjekt.Close();
}
}

</script>
<html>
<head>
</head>
<body>
<form runat="server">
Indsæt ferieplanen her:<asp:TextBox id="ferieBox" runat="server" TextMode="MultiLine" Width="100%" Height="200px"></asp:TextBox>
<asp:Button id="Button1" onclick="ferieopdater" runat="server" Text="Opdater Ferieplan"></asp:Button>
<br />
</form>
</body>
</html>

Accepteret svar
Fra : Harlekin

Modtaget 35 point
Dato : 14-02-05 10:57

Hvis du slår sikkerhedsvalideringen fra i dit Page direktiv, så kan du gemme hvadsomhelst uden at .Net blander sig.

<%@ Page validateRequest=false language="c#" %>

Det står faktisk i den fejlmeddelelse du får.
Bruger du ovenstående i Page direktivet skal du skrive det på alle de sider der skal gemmes på. Du kan også lave ændringen generelt for alle sider ved at gemme følgende i web.config filen:
<configuration>
<system.web>
<pages validateRequest=false />


Godkendelse af svar
Fra : ps080171


Dato : 14-02-05 11:00

Tak for svaret Harlekin.
                        

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177416
Tips : 31962
Nyheder : 719565
Indlæg : 6407862
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste