在我的QUIZ應用程序中,我想向MVC控制器發送一個對象數組(其中一個問題有四個答案,作爲對象屬性的一個正確答案),但它發送空值。解決此問題的關鍵是將JSON對象串聯起來,定義一個模型並將參數作爲定義的模型。有沒有其他解決方案?無法使用AJAX將JSON數據傳遞給MVC控制器?
我查看UI看起來像this
//視圖腳本
<script>
$(document).ready(function() {
$("#btnsubmit").click(function() {
createquestions();
});
function createquestions()
{
var things = [];
var nofques = $("#ddlnofquestions").val();//Coming from Dropdown Value
for (var i = 1; i <= nofques; i++) {
var obj = {
id: i,
question: CKEDITOR.instances[i.toString()].getData(),
answer1:$("#" + i + 1).val(),
answer2: $("#" + i + 2).val(),
answer3: $("#" + i + 3).val(),
answer4: $("#" + i + 4).val(),
correctanswer: $("#" + i + 5).val(),
};
things.push(obj);
}
var thingss = JSON.stringify({ "things": things });
$.ajax({
type: 'POST',
url:'Question/CreateQuestion',
async:true,
dataType: 'json',
contentType: "application/json; charset=utf-8",
data: { things: JSON.stringify(things) },
traditonal: true,
success: function (data) {
alert("Sucessfully Created");
},
});
}
});
</script>
C#:模型類
public class CreateQuestion
{
public int id { get; set; }
public string question { get; set; }
public string answer1 { get; set; }
public string answer2 { get; set; }
public string answer3 { get; set; }
public string answer4 { get; set; }
public string correctanswer { get; set; }
}
C#:控制器
public ActionResult CreateQuestion(List<CreateQuestion> things)
{
//where we try to get an array of objects
//Working Code......
return View();
}
我覺得這是一個相當不錯的解決方案。也許你的問題更適合http://codereview.stackexchange.com – venerik