getir. Bu şekilde değişkenlerden yapacağını gibiASP.NET MVC - Otomatik olarak JSON deserialise geri sunucuya bazı veri göndermek için <a href="https://github.com/github/fetch" rel="nofollow">github/fetch polyfill</a> kullanıyorum POST
fetch('./PerformSearch', {
method: 'POST',
header: {
'Accept' : 'application/json',
'Content-type' : 'application/json'
},
body: JSON.stringify({
terms: this.refs.termsFilter.getSelections(),
details: this.refs.detailsFilter.getSelections(),
dateRange: {
from: new Date(),
til: new Date()
}
})
})
ancak kontrol cihazı otomatik olarak değişken veri nesnesine isteğe gövdesini deserialising değildir. Gerçi bu kullanarak XmlHttpRequest yaparsanız, çalışıyor ..
var request = new XMLHttpRequest();
request.open("POST", url, true);
request.setRequestHeader("Content-type","application/json;charset=UTF-8")
...
request.send(JSON.stringify(data))
denetleyicisi isteği alma fonksiyonu şu anda oldukça basittir - bu şey yapmaz, sadece o deseralise almaya çalışıyorum veri nesnesine json vücut şu anda aşağıdaki kullanarak:
public JsonResult PerformSearch(SearchModel.SearchSelections data)
{
//data has not been serialised
Stream req = Request.InputStream;
string body = new IO.StreamReader(req).ReadToEnd;
Console.WriteLine(body); // writes a json string
}
Yani evet, ben json kitaplığı kullanarak işlevi içinde bu kendim deserialise olabilir, ama yerine denetleyicisi için bir yol bulacağını için bunu yapmak ben mi.
GÜNCELLEME: Burada
Ben deseralise çalışıyorum .net nesnesidir için:class SearchModel
{
public class SearchSelections
{
public SearchTermList terms { get; set; }
public SearchDetailsList details { get; set; }
public DateRange dateRange { get; set; }
}
public class SearchTermList
{
public IEnumerable<string> exams { get; set; }
public IEnumerable<string> areas { get; set; }
public IEnumerable<string> classes { get; set; }
public IEnumerable<string> tokens { get; set; }
}
public class SearchDetailsList
{
public IEnumerable<string> studyTypes { get; set; }
public IEnumerable<string> species { get; set; }
public IEnumerable<string> strains { get; set; }
}
public class DateRange
{
public System.DateTime @from { get; set; }
public System.DateTime til { get; set; }
}
}
Emin misin? SearchModel.SearchSelections modeliniz sunucuya aktardığınız JSON modeline karşılık geliyor mu? İstersen – Anton
evet, söz konusu her iki ekleyebilirsiniz? –
evet – Anton