我在我的asp.net mvc(C#)应用程序中处理一些动态控件。在窗体集合中处理具有相同名称的多个控件
上的按钮,点击“添加行”,我将动态现有表中添加一行如:
$('#btnAddMore').click(function() {
var _userBodyHtml = '';
_userBodyHtml += '<tr><td><input type="text" name="UserName" id="UserName' + _userDynId + '" size="10" /></td>';
_userBodyHtml += '<td><textarea name="UserComments" id="UserComments' + _userDynId + '" cols="60" rows="1"></textarea></td>';
_userBodyHtml += '</tr>';
_userDynId += 1;
$('#UserBody').append(_userBodyHtml);
});
然后管理员将用户名和意见,并将其提交。
在提交时,我正在处理它在控制器的行动:
var _frmUserNames = new List<String>(form["UserName"].ToString().Split(','));
var _frmUserComments = new List<String>(form["UserComments"].ToString().Split(','));
if (_frmUserNames.Count > 0 && _frmUserComments.Count > 0)
{
List<UserComments> _userComments = Enumerable.Range(0, _frmUserNames.Count)
.Select(i => new UserComments
{
UserName = _frmUserNames[i],
UserComment = _frmUserComments[i]
}).ToList();
}
从上面的代码中,_frmUserComments
返回逗号分隔值时,有不止一个文本框具有相同的名称,因为我区分该文本框只能使用不同的ID。
问题是,当管理员输入在该评论中具有逗号(,)的用户评论时,则表单值_frmUserComments
具有逗号分隔值并且将无效数据提供给列表。
当管理员进入(情况1),其是精细:
Sam Logged on 12/10/2010
David Looking for enhancement
形式值返回:
_frmUserNames = "Sam,David"
_frmUserComments = "Logged on 12/10/2010,Looking for enhancement"
当管理员进入(情况2),这是引起问题:
Sam Logged on 12/10/2010
David Logged on 03/01/2011, Looking for enhancement
表单值返回:
_frmUserNames = "Sam,David"
_frmUserComments = "Logged on 12/10/2010,Logged on 03/01/2011, Looking for enhancement"
我该如何处理这种情况。