Ole*_* Sh 5 c# ajax asp.net-mvc json
我看到类似的问题,但没有一个对我有帮助。我有最简单的代码:
public JsonResult JsonGetStatesInfo(object[] instructions)
{
if (Request.IsAjaxRequest())
{
return Json(String.Empty);
}
else
throw new NoAjaxRequestException();
}
Run Code Online (Sandbox Code Playgroud)
和客户端:
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);
}
});
Run Code Online (Sandbox Code Playgroud)
在客户端,我尝试使用 JSON.stringify,不使用 JSON.stringify,使用传统:true,不使用传统:true
在服务器端,我尝试作为参数:object[]、object、List<object>、List<string>、IEnumerable<string> 等
什么都没起作用!怎样做才正确呢?
已解决:我的问题很简单 - 数组的实际值中的一个具有 HTML 标签。只需要添加 [ValidateInput(false)] 到操作方法中
至少,您可以将 JavaScript 数组作为字符串传递并在控制器中反序列化
public JsonResult JsonGetStatesInfo(string instructions)
var instructionsArray= JsonConvert.DeserializeObject<string[]>(instructions);
Run Code Online (Sandbox Code Playgroud)
或者使用新数组,如下所述:https ://stackoverflow.com/a/310136/3063094
归档时间: |
|
查看次数: |
10091 次 |
最近记录: |