gpt4 book ai didi

c# - jquery.POST 到 MVC Controller 以返回 JSON

转载 作者:行者123 更新时间:2023-11-30 17:09:00 24 4
gpt4 key购买 nike

我创建了以下模型

public class myModel
{
public int ID;
public string Name;
public int[] days;
}

然后我在 Controller 中创建了一个 Action

[HttpPost]
public ActionResult myCtrlAction(myModel thisModel)
{
if (ModelState.IsValid)
{
return Json(thisModel);
}
else
{
string errorMessage = "<div class=\"validation-summary-errors\">"
+ "The following errors occurred:<ul>";
foreach (var key in ModelState.Keys)
{
var error = ModelState[key].Errors.FirstOrDefault();
if (error != null)
{
errorMessage += "<li class=\"field-validation-error\">"
+ error.ErrorMessage + "</li>";
}
}
errorMessage += "</ul>";
return Json(new myModel { Name = errorMessage }); //just for now
}
}

在我的 javascript 中,我使用 jQuery.post() 作为发送数据

$("#myBtn").click(function () {
var mydata = {
ID: $("#inputID").val(),
Name: $("#inputName").val(),
Days: $("#selectDays").select2("val")
}
var url = 'myController/myCtrlAction'; //definitly it was writtern as @Url.Action
$.post(url, mydata, function(data) { alert(data); //which shows [object object]
}, 'json');
});

现在根据要求,当我在 Chrome 中调试时,我在标题中看到了

表单数据编号:5名称:某名天[]:6天[]:5

作为响应,我得到了我的模型的 json 格式

{ID: "0", Name: "null", Days: "null"} 这意味着我的模型状态有效但为什么它没有值?

任何人都有任何想法。我做错了什么或者我错过了什么?

最佳答案

我认为您的模型数据未设置,因此您在 Chrome 上获得了空值。

如果您的 javascript 没有打字错误(并且您只是在创建问题时打错了字,那么请在您的方法 myCtrlAction 中尝试此操作;

首先尝试为 myModel 中的字段创建 getter 和 setter。然后;

替换;

 errorMessage += "</ul>";

return Json(new myModel { Name = errorMessage }); //just for now

有了这个;

 myModel myMODTest= new myModel();
myMODTest.setID(1111);
myMODTest.setName("testName");
myMODTest.setDays({1,2,3});
return Json(myMODTest); //just for now

查看您的浏览器是否获得以下内容;

{ID: "1111", Name: "testName", Days: "{1,2,3}"}

关于c# - jquery.POST 到 MVC Controller 以返回 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13362005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com