假设我在视图中有一个带有动态行的表单,其中的字段绑定到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中为字符串设置特殊分隔符?
答案 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>
<%} %>
使用相同的字符串[]链接动作输入参数,但在这种情况下,您将确保获得正确索引的正确字符串(例如,即使您隐藏了其中一些索引)。