at sikre, xhtml compliancy i asp.net 1.1

, ud af den kasse, asp.net genereret html er ' t validere for godt mod xhtml 1.0, ud af den kasse, asp.net genereret html er ' t validere for godt mod xhtml 1,0.når man anvender < form runat = " server " />, de genererede html vil tilføje en navn tilskriver form navneskilt.det er ugyldig xhtml.den skjulte rubrik ved navn __viewstate skal være anbragt i en < div > tag.og client-side manuskript blokke skal anvende type = " tekst /javascript " i stedet for language = " javascript &; quot;.jeg har bygget en klasse (kode nedenfor), som benytter regelmæssigt udtryk for at rydde op i det nødvendige i at være i overensstemmelse med xhtml.,,, < manuskript runat = " server " >, beskyttede tilsidesætte ugyldig gøre (htmltextwriter forfatter) {, stringbuilder stringbuilder = nye stringbuilder();, stringwriter stringwriter = nye stringwriter (stringbuilder), htmltextwriter htmlwriter = nye htmltextwriter (stringwriter), base. gøre (htmlwriter)http: //= stringbuilder snor. tostring();, forfatter. skrive (komponenter. xhtml. cleanstream (http: //),}, < /manuskript >,,, og her koden for den klasse.du og' får brug for at samle det. ved hjælp af systemet. tekst. regularexpressions;, namespace komponenter (offentlige forseglet klasse xhtml, {offentlige statiske snor cleanstream (serie s), (, regex r., r = nye regex (" < form (navn = ¶ " ([). ".] +). ") ", regexoptions. ignorecase); s = r.replace (s, nye matchevaluator (formmatch), r = nye regex (" manuskript. \\ s + (language = en " javascript ¶ ") ", regexoptions. ignorecase); s = r.replace (s, nye matchevaluator (scriptattributematch), r = nye regex (" < input. *?(language=\\"javascript\\")",RegexOptions.IgnoreCase);, s = r.Replace(s,new MatchEvaluator(InputScriptAttributeMatch));, r = new Regex("<input\\\\s+type=\\"hidden\\"\\\\s+name=\\"__VIEWSTATE\\"\\\\s+value=\\"([^\\"]+)\\"\\\\s+/>", ,RegexOptions.IgnoreCase);, s = r.Replace(s,new MatchEvaluator(ViewstateMatch));, return s;, }, private static string ViewstateMatch(Match m), {, return "<div>" + m.ToString() + "</div>";, }, private static string ScriptAttributeMatch(Match m), {, return m.ToString().Replace(m.Groups[1].ToString(),"type=\\"text/javascript\\"");, }, private static string InputScriptAttributeMatch (match m) {, tilbage. tostring(). erstatte (m.groups [1]. tostring(), " "), private statiske snor formmatch (match m) {, tilbage. tostring(). erstatte (m.groups [1]. tostring(), " ");,,,,,,,, denne metode kan ikke være det bedste i verden.men det virker for mig på min ringe trafik sider.



Previous:
Next Page: