我的 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"
我该如何处理这样的场景。