我创建了以下模型
public class myModel
{
public int ID;
public string Name;
public int[] days;
}
然后我在控制器中创建了一个动作
[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 中调试时,我在标题中看到了
表单数据 ID:5 名称:SomeName Days[]:6 Days[]:5
作为回应,我得到了我的模型的 json 格式
{ID: "0", Name: "null", Days: "null"}这意味着我的模型状态是有效的,但为什么它没有值?
任何人都有任何想法。我做错了什么或者我错过了什么?