Asp.net mvc MVC2在编辑textboxfor上的项目时出现问题

Asp.net mvc MVC2在编辑textboxfor上的项目时出现问题,asp.net-mvc,asp.net-mvc-2,lambda,extension-methods,Asp.net Mvc,Asp.net Mvc 2,Lambda,Extension Methods,我在mvc上有这个模型: public class User { public string Name { get; set; } public IList<string>RelatedTags { get; set; } } 公共类用户 { 公共字符串名 { 得到; 设置 } 公营部门 { 得到; 设置 } } 和以下类型的视图(用户)来编辑添加用户(AddEdit.aspx视图):

我在mvc上有这个模型:

public class User
{
    public string Name
    {
      get;
      set;
    }
    public IList<string>RelatedTags
    {
      get;
      set;
    }
}
公共类用户
{
公共字符串名
{
得到;
设置
}
公营部门
{
得到;
设置
}
}
和以下类型的视图(用户)来编辑添加用户(AddEdit.aspx视图):


e、 名称)%%>
e、 名称)%%>
e、 名称)%%>
e、 相关标签)%>
e、 相关标签)%>
e、 相关标签)%>
另一方面,我有一个“RelatedTags”字段。我需要(在ActionController端)一个与我添加的用户相关的标签列表。为此,我创建了一个自定义模型绑定器(以获取文本框的字符串并将其作为列表传递):

public覆盖对象BindModel(ControllerContext ControllerContext,ModelBindingContext bindingContext)
{
List listoftags=bindingContext.ValueProvider.GetValue(“RelatedTags”).AttemptedValue.Split(',').ToList();
返回标签列表;
}
实际上,我可以使用AddEdit.aspx添加一个新用户(在控制器端,我得到一个相关标记的列表,但是当我编辑一个用户时,我不知道在哪里可以将该列表转换为逗号字符串,或者我不知道应该在视图上更改这些行:

<div>
       <%: Html.LabelFor(e => e.RelatedTags)%>
       <%: Html.TextBoxFor(e => e.RelatedTags)%>
       <%: Html.ValidationMessageFor(e => e.RelatedTags)%>
</div>

e、 相关标签)%>
e、 相关标签)%>
e、 相关标签)%>
为了以防万一,我为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();
        }
    }
公共静态类扩展
{
公共静态字符串ToCommaString(此IList输入)
{
StringBuilder sb=新的StringBuilder();
foreach(输入中的T值)
{
附加(价值);
某人加上(“,”);
}
使某人返回字符串();
}
}
当我编辑一个用户时,你能给我一些帮助吗?在输入字段中看到一个用逗号分隔的字符串和列表中的所有元素

先谢谢你

致以最良好的祝愿


何塞。

也许你可以用这个型号

public class UserModel
{
    public string Name { get; set; }
    protected IList<string> RelatedTagsList { get; set; } 
    public string RelatedTags
    {
        get
        {
            return string.Join(",", RelatedTagsList.ToArray());
        }

        set
        {
            RelatedTagsList = value.Split(',').ToList();
        }
    }
}
公共类用户模型
{
公共字符串名称{get;set;}
受保护的IList RelatedTagsList{get;set;}
公共字符串相关标签
{
得到
{
返回字符串.Join(“,”,RelatedTagsList.ToArray());
}
设置
{
RelatedTagsList=value.Split(',').ToList();
}
}
}
不需要粘合剂和延伸方法

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();
        }
    }
public class UserModel
{
    public string Name { get; set; }
    protected IList<string> RelatedTagsList { get; set; } 
    public string RelatedTags
    {
        get
        {
            return string.Join(",", RelatedTagsList.ToArray());
        }

        set
        {
            RelatedTagsList = value.Split(',').ToList();
        }
    }
}