如何在MVC视图中的formCollection中更改组数据的分隔符?

时间:2009-10-01 16:03:55

标签: asp.net-mvc

假设我在视图中有一个带有动态行的表单,其中的字段绑定到viewmodel,如:

 <%for (int i = 1; i <= 5; i++)
 { %>
   <tr> 
    <td style="width: 100%">
      <%= Html.TextBox("Link", Model.Websites[i.ToString()].Links)%>
     </td>
      .....
   </tr>
 <%} %>

发布表单时,在FormCollection中,来自TextBox“Link”的所有数据都是以逗号分隔的字符串。比如,Yahoo.com,youtube.com,google.com

然后我可以使用逗号将数据提取到数组,如:

string[] links = formdata["Link"].Split(',');

但问题是:如果输入的数据包括逗号,例如“mysite,go.com”,我可以为每个项目获取正确的数据。

如何解决此问题?是否可以在FormCollection中为字符串设置特殊分隔符?

1 个答案:

答案 0 :(得分:0)

使用此

public ActionResult MyActionToHandleForm(string[] Link)
{
}

你应该自动获得正确的数组。请阅读here了解更多信息。

请注意,您也可以这样做(命名文本框“Link [i]”)

 <%for (int i = 1; i <= 5; i++)
 { %>
   <tr> 
    <td style="width: 100%">
      <%= Html.TextBox("Link[" + i + "]", Model.Websites[i.ToString()].Links)%>
     </td>
      .....
   </tr>
 <%} %>

使用相同的字符串[]链接动作输入参数,但在这种情况下,您将确保获得正确索引的正确字符串(例如,即使您隐藏了其中一些索引)。