私のjQuery/HTML:
@using(Html.BeginForm("Create", "Home", FormMethod.Post)) {
<input name="ImageName" id="ImageName" type="hidden" />
<input name="XPos" id="XPos" type="hidden" />
<input name="YPos" id="YPos" type="hidden" />
<input name="Height" id="Height" type="hidden" />
<input name="Width" id="Width" type="hidden" />
<button id="submit" value="submit">Create it!</button>
}
$('form').submit(function () {
var parameters = [];
parameters.push({
ImageName: $('#imagename').val(),
XPos: $('#xpos').val(),
YPos: $('#ypos').val(),
Height: $('#height').val(),
Width: $('#width').val()
});
console.log(JSON.stringify(parameters));
$.ajax({
url: '@Url.Action("Create", "Home")',
type: 'Post',
data: JSON.stringify(parameters),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (result) {
//yadda
},
error: function (xhr, status, error) {
//yadda
}
});
これは私のビューモデルです:
public class Image{
public string ImageName { get; set; }
public double Xpos { get; set; }
public double Ypos { get; set; }
public double Height{ get; set; }
public double Width { get; set; }
}
そして、これが私のコントローラーです。
JSON.stringify(パラメータ) は次のようになります。
[{"ImageName":"https://domain.com/test.jpg","XPos":"347.98614501953125","YPos":"435.45140838623047","Height":"20","Width":"80.39999999999999"}]
[HttpPost]
public JsonResult Create(Image i) {
//p always has null values
}
ViewModel に常に null 値が含まれるのはなぜですか?