Используйте /([^-0-9,.]+)/g
как регулярное выражение. Вы также должны экранировать знак минус, но это специальный символ, поэтому вы избегаете его в самом начале, а затем избегаете других символов. Затем вы должны разделить количество совпадающих символов с помощью +
(один или несколько). g
после того, как выражение означает «глобальный» - вернуть все совпадения, а не только первое.
Этот сайт очень удобен при тестировании выражений регулярных выражений.
То, что необходимо сделать, расширяют DefaultValueProvider в собственное. В Вашем значении поставщик расширяют GetValue (имя) для разделения тегов и загрузки в LazyList. Необходимо будет также изменить вызов на UpdateModel:
UpdateModel(q, new[] { "Title", "Body", "Tags" },
new QuestionValueProvider(this.ControllerContext));
QuestionValueProvider, который я записал:
public class QuestionValueProvider : DefaultValueProvider
{
public QuestionValueProvider(ControllerContext controllerContext)
: base(controllerContext)
{
}
public override ValueProviderResult GetValue(string name)
{
ValueProviderResult value = base.GetValue(name);
if (name == "Tags")
{
List<string> tags = new List<string>();
string[] splits = value.AttemptedValue.Split(' ');
foreach (string t in splits)
tags.Add(t);
value = new ValueProviderResult(tags, null, value.Culture);
}
return value;
}
}
Надеюсь, это поможет