我看到了类似的问题,但没有一个对我有所帮助。 我有最简单的代码:
public JsonResult JsonGetStatesInfo(object[] instructions)
{
if (Request.IsAjaxRequest())
{
return Json(String.Empty);
}
else
throw new NoAjaxRequestException();
}
还有客户端:
var instructions = [];
instructions.push('abc');
instructions.push('ddd');
instructions.push('assdbc');
var inst = JSON.stringify(instructions);
$.ajax({
cache: false,
data: { 'instructions': inst },
traditional: true,
dataType: 'json',
url: '/State/JsonGetStatesInfo',
type: 'post',
success: function (resp) {
},
error: function (data) {
alert(data.error);
}
});
在客户端,我试过使用JSON.stringify,不使用JSON.stringify,使用traditional:true,不使用traditional:true。
在服务器端,我尝试了object[]、object、List、List、IEnumerable等参数类型。
但是都没有起作用!应该如何正确地处理它? 解决方案: 我的问题很简单——数组中的实际值之一带有HTML标记。只需要在动作方法中添加[ValidateInput(false)]即可。