Javascript JSON发送的数据总是空的 第一个问题
我为另一个编码员处理代码 我必须正确地检查cron表达式,我可以更改程序中的许多行代码。我从表单中获取参数,并尝试将此数据发送到控制器MVCJavascript JSON发送的数据总是空的 第一个问题,javascript,ajax,json,asp.net-mvc,Javascript,Ajax,Json,Asp.net Mvc,我为另一个编码员处理代码 我必须正确地检查cron表达式,我可以更改程序中的许多行代码。我从表单中获取参数,并尝试将此数据发送到控制器MVC var outl = document.getElementById('Frequency').value; var tmp = checkValid(outl); 及 MVC中的控制器看起来像: public JsonResult isValid(string dataFromJson) { Options options = new Opti
var outl = document.getElementById('Frequency').value;
var tmp = checkValid(outl);
及
MVC中的控制器看起来像:
public JsonResult isValid(string dataFromJson)
{
Options options = new Options()
{
ThrowExceptionOnParseError = true,
Use24HourTimeFormat = true,
};
try
{
ExpressionDescriptor ceh = new ExpressionDescriptor(dataFromJson, options);
string description = ceh.GetDescription(DescriptionTypeEnum.FULL);
return Json(true);
}
catch (FormatException)
{
return Json(false);
}
}
参数dataFromJson
通常为空。为什么?真的,我不知道我错在哪里了
第二部分
在控制器中,我返回JSON——这是个好主意吗?如何在Ajax中从该控制器获得响应,请按如下所示更改
Ajax
数据
function checkValid(checkExpression)
{
var tmp = JSON.stringify({dataFromJson : checkExpression});
$.ajax({
contentType: 'application/json; charset=utf-8',
dataType: "json",
type: 'POST',
url: '/Service/isValid',
data: tmp,
success: function (isvalid)
{
return isvalid;
}
});
console.log(tmp);
}
在上面,我更改了var tmp=JSON.stringify({dataFromJson:checkExpression})代码>这个,现在可以在服务器端绑定。如果希望从服务器响应获得json,还可以将dataType
更改为json
关于第二部分,根据您的需求,您可以根据需要使用内容
或Json
。将控制器操作方法的参数类型更改为JObject(Newtonsoft.Json.Linq)或dynamic
公共JsonResult有效(JObject dataFromJson)
或者JsonResult是有效的(DynamicDataFromJSON)感谢您在编辑中的帮助
function checkValid(checkExpression)
{
var tmp = JSON.stringify({dataFromJson : checkExpression});
$.ajax({
contentType: 'application/json; charset=utf-8',
dataType: "json",
type: 'POST',
url: '/Service/isValid',
data: tmp,
success: function (isvalid)
{
return isvalid;
}
});
console.log(tmp);
}