У меня есть эта модель на mvc:
public class User
{
public string Name
{
get;
set;
}
public IList<string>RelatedTags
{
get;
set;
}
}
И следующий типизированный вид (пользователь) для редактирования и добавления пользователя (вид AddEdit.aspx):
<div>
<%: Html.LabelFor(e => e.Name)%>
<%: Html.TextBoxFor(e => e.Name)%>
<%: Html.ValidationMessageFor(e => e.Name)%>
</div>
<div>
<%: Html.LabelFor(e => e.RelatedTags)%>
<%: Html.TextBoxFor(e => e.RelatedTags)%>
<%: Html.ValidationMessageFor(e => e.RelatedTags)%>
</div>
ДляС другой стороны, у меня есть поле «RelatedTags».Мне нужен (на стороне контроллера действий) список тегов, связанных с пользователем, который я добавляю.По этой причине я создал привязку пользовательской модели (чтобы взять строку текстового поля и передать ее в виде списка):
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
List<string> listoftags = bindingContext.ValueProvider.GetValue("RelatedTags").AttemptedValue.Split(',').ToList<string>();
return listoftags;
}
На самом деле я могу использовать AddEdit.aspx для добавления нового пользователя (на стороне контроллера).Я получаю список связанных тегов, но когда я редактирую пользователя, я не знаю, где я могу преобразовать этот список в строку запятой, и либо я не знаю, следует изменить эти строки в представлении:
<div>
<%: Html.LabelFor(e => e.RelatedTags)%>
<%: Html.TextBoxFor(e => e.RelatedTags)%>
<%: Html.ValidationMessageFor(e => e.RelatedTags)%>
</div>
ByНа данный момент, на всякий случай, я создал метод расширения для IList:
public static class Extensions
{
public static string ToCommaString<T>(this IList<T> input)
{
StringBuilder sb = new StringBuilder();
foreach (T value in input)
{
sb.Append(value);
sb.Append(",");
}
return sb.ToString();
}
}
Не могли бы вы мне помочь, когда я редактирую пользователя, вижу в поле ввода строку, разделенную запятыми со всемиэлементы списка?
Заранее большое спасибо.
С наилучшими пожеланиями.
Хосе.