添加缺失的 html 标签
Adding missing html tags
是否可以在 ASP MVC 中添加缺失的 html 标签。这就是我的意思:
String x = "<p><b>Hello world how are you</b></p>";
在前几个字符处替换该字符串将导致:
String x = "<p>Hello world ";
在缺少 </p>
标签的地方,在循环中使用 @MvcHtmlString.Create(x)
会导致标签混淆,从而导致标签丢失。
ASP MVC 中是否有自动执行此操作的方法或 C# 函数来纠正它们?
1可能最简单的做法是创建一个辅助函数,该函数接收 MvcHtmlString.Create(x) 的输出并在缺少时添加结束标记。
看起来像这样(未测试)
private string CloseTag(string snippet)
{
if (string.IsNullOrEmpty(snippet) || (snippet.TrimStart().StartsWith("<") && snippet.TrimEnd().EndsWith(">")) || !snippet.TrimStart().StartsWith("<"))
{
return snippet;
}
var index = snippet.IndexOf('>');
var tag = snippet.Substring(1, index - 1);
return snippet.TrimEnd() + "</" + tag + ">";
}
稍微清理一下,您可以创建一个扩展方法并直接在您的字符串上调用它
检查这个要点:https://gist.github.com/mouhong/c09487502e261f7ce53d
它将关闭丢失的结束标签(支持嵌套标签)和损坏的结束标签,并忽略损坏的开始标签。
它还没有完全测试,如果你发现任何错误请告诉我:P
用法:
"<p>Hello".CloseTags();
示例:
+-------------------------+--------------------------------+
| Input | Output |
+-------------------------+--------------------------------+
| <div>Hello World | <div>Hello World</div> |
| <div>Hello, <b>World | <div>Hello, <b>World</b></div> |
| <div>Hello World</di | <div>Hello World</div> |
| <div>Hello, <b>World</ | <div>Hello, <b>World</b></div> |
| <div>Hello World. <span | <div>Hello World. </div> |
+-------------------------+--------------------------------+
是否可以在 ASP MVC 中添加缺失的 html 标签。这就是我的意思:
String x = "<p><b>Hello world how are you</b></p>";
在前几个字符处替换该字符串将导致:
String x = "<p>Hello world ";
在缺少 </p>
标签的地方,在循环中使用 @MvcHtmlString.Create(x)
会导致标签混淆,从而导致标签丢失。
ASP MVC 中是否有自动执行此操作的方法或 C# 函数来纠正它们?
1可能最简单的做法是创建一个辅助函数,该函数接收 MvcHtmlString.Create(x) 的输出并在缺少时添加结束标记。
看起来像这样(未测试)
private string CloseTag(string snippet)
{
if (string.IsNullOrEmpty(snippet) || (snippet.TrimStart().StartsWith("<") && snippet.TrimEnd().EndsWith(">")) || !snippet.TrimStart().StartsWith("<"))
{
return snippet;
}
var index = snippet.IndexOf('>');
var tag = snippet.Substring(1, index - 1);
return snippet.TrimEnd() + "</" + tag + ">";
}
稍微清理一下,您可以创建一个扩展方法并直接在您的字符串上调用它
检查这个要点:https://gist.github.com/mouhong/c09487502e261f7ce53d
它将关闭丢失的结束标签(支持嵌套标签)和损坏的结束标签,并忽略损坏的开始标签。
它还没有完全测试,如果你发现任何错误请告诉我:P
用法:
"<p>Hello".CloseTags();
示例:
+-------------------------+--------------------------------+
| Input | Output |
+-------------------------+--------------------------------+
| <div>Hello World | <div>Hello World</div> |
| <div>Hello, <b>World | <div>Hello, <b>World</b></div> |
| <div>Hello World</di | <div>Hello World</div> |
| <div>Hello, <b>World</ | <div>Hello, <b>World</b></div> |
| <div>Hello World. <span | <div>Hello World. </div> |
+-------------------------+--------------------------------+