晚上好,伙计们!我有一个奇怪的。
长话短说,我正在从一个java脚本客户端发送一个帖子,从我的C#Controller获取一个整数,但是response.data返回null。扭曲的是,C#方法和javascript / jquery函数都是从另一个项目中复制和粘贴的。他们从中获取的项目是一个VS2010项目,它们被粘贴到VS2012项目中。我不确定这是否是问题,但它可能是相关的。在C#中正确获取整数,并且没有任何信息丢失。更神秘的是,成功消息正确地返回到响应对象客户端。但是,response.data对象为null,并抛出异常。
非常感谢任何和所有帮助。谢谢!
这是C#中的方法:
[HttpPost]
public JsonResult GetMaxFileSize()
{
int MaxFileSize = 0;
// Get max file size.
string MaxPatientFileSizeInMegsString = System.Web.Configuration.WebConfigurationManager.AppSettings["MaxFacilityLogoFileSizeInMegs"];
MaxFileSize = int.Parse(MaxPatientFileSizeInMegsString);
return Json(new AjaxResponse(true, "Success.", new { maxFileSize = MaxFileSize }));
}
这是javascript / jquery函数:
function getMaxFileSize() {
$.post(settings.actions.getMaxFileSize, function (response) {
var maxFileSize = 0;
// Assign the correct size to the hidden field.
if (response.success) {
maxFileSize = response.data.maxFileSize;
$(settings.selectors.maxFileSizeHiddenInput).val(maxFileSize);
}
// Assign 0 to max file size: user cannot upload files.
else {
$(settings.selectors.maxFileSizeHiddenInput).val(maxFileSize);
}
});
}
答案 0 :(得分:0)
在这里工作正常!
TestController.cs
public class AjaxResponse
{
public AjaxResponse(bool success, object data)
{
this.success = success;
this.data = data;
}
public bool success { get; set; }
public object data { get; set; }
}
[HttpPost]
public ActionResult Ajax()
{
return Json(new AjaxResponse(true, new { num = 5 }));
}
Index.cshtml
$.post('@Url.Action("Ajax", "Test")', function (response) {
var num = 0;
debugger;
// Assign the correct size to the hidden field.
if (response.success) {
num = response.data.num;
$('h2').html(num);
}
// Assign 0 to max file size: user cannot upload files.
else {
$('h2').html(num);
}
});
FireBug中的JSON响应:
{"success":true,"data":{"num":5}}