c# - 如何构建像 SO 这样的标记系统?

标签 c# string

如何构建类似SO的标签系统?

我在我的 asp.net mvc 网站上使用一个独特的文本框来提交“标签”。

首先,我尝试用逗号“asp.net, c#, sql server”来分割标签。 它有效,但如果用户忘记用逗号分隔标签,我将无法拆分该字符串。

“asp.net c# sql server”:sql server 应该是单个标记,而不是两个“sql”+“server”。

而且我“不能”(他不应该关心这个......)要求用户使用“-”字符来分隔标签的单词:“sql-server”

有人帮忙吗?

最佳答案

我可以想到一种(简单的)方法让您的用户在标签中包含任何字符。该解决方案是允许用户一次只输入一个 标记。您可以有一个文本框,用户可以在其中输入标签(现有标签的自动完成是一个明确的加号),在完成输入时按回车键或按钮,并且输入的标签显示在应用标签列表中的文本框下方。这些应用的标签必须为每个标签都有一个按钮,以允许用户删除标签。

Wordpress 在您创建帖子时具有类似的标记机制,但它们允许通过简单地说明分隔标记的字符来一次输入多个标记。要求分隔符不是什么大问题,但如果您不想强制使用特定的分隔符,您只需限制用户一次只能输入一个标签。

image of wordpress's tag box

另一个想法(编辑)

我今天刚读到:Tokenizing Control

关于c# - 如何构建像 SO 这样的标记系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2241175/

相关文章:

c++ - 取而代之的是获取存储的内存编号

c - HTTP 通过 C 中的套接字 : Basic file server fails to properly return file

python - 不使用正则表达式删除字符串中的标点符号和空格

python - Perl 的 ucfirst() 或 s///e 在 Python 中的等价物是什么?

javascript - 在 javascript 函数中返回字符串时遇到问题

c# - 如何编译使用不安全代码的解决方案?

c# - 内存消耗快速增加,然后下降非常缓慢;内存泄漏?

c# - 如何在 C# 中强制内联函数?

C#:如何包含依赖的 DLL?

c# - 如何将目录路径的默认值设置为项目设置