次のモデルを作成しました
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 日[]: 6 日[]: 5
応答で、モデルのjson形式を次のように取得しました
{ID: "0", Name: "null", Days: "null"}これは、モデルの状態が有効であることを意味しますが、値がないのはなぜですか?
どんな体にも考えがあります。私は何を間違えたのですか、それとも何か見逃していますか?