試一試 -
考慮以下JSON數據。假設json數據是從您嘗試提交的任何表單中獲得的。
var jsonData = {"FirstName":"John", "LastName":"Doe", "DoB":"01/01/1970",
[{"CompanyName":"Microsoft", "StartDate":"01/01/2010", "EndDate":"01/01/2011"},
{"CompanyName":"Apple Inc", "StartDate":"01/01/2011", "EndDate":"01/01/2012"}
]};
下面的ajax方法應該讓你去。確保您指定POST類型,因爲ajax方法默認使用GET方法。
$.ajax({
url:"@Url.Action("ExportJson")",
data: jsonData, //this could also be form data
type:"POST",
success:function(data){
//Do something:
}})
.done(function(data){
//data - response from server after save
})
.fail(){
alert("ajax error")
});
MVC控制器: 與HttpPost動詞裝飾操作方法。此操作方法將只處理來自瀏覽器的http發佈請求。從瀏覽器提交的Ajax將自動反序列化爲FormData c#類作爲poco。因此,您應該可以在不做任何修改的情況下使用jsnData對象。
[HttpPost]
public ActionResult ExportJson(FormData jsnData)
{
//do something here
}
FORMDATA類將是表示JSON數據C#類:
public class FormData
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string DoB { get; set; }
public List<WorkExperience> workExperience { get; set; }
}
public class WorkExperience
{
public string CompanyName { get; set;}
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
}
有類似的問題[這裏](http://stackoverflow.com/questions/21578814/how-to-receive- json-as-an-mvc-5-action-method-parameter),[here](http://stackoverflow.com/questions/4164114/posting-json-data-to-asp-net-mvc)和[here ](http://stackoverflow.com/questions/15317856/asp-net-mvc-posting-json)。 – Jasen
我只需要沒有ViewModel創建的原始json字符串 – user5120455
鏈接問題中有答案,其中註明瞭如何做到這一點。例如,在第一個鏈接上:http://stackoverflow.com/a/21579180/215552 –