我有一些JS正在向MVC控制器傳遞(或試圖傳遞)模型和字符串。將模型和其他參數從javascript發佈到MVC3控制器
JS代碼是:
$.ajax({
url: self.ajaxValidationUrl,
type: "POST",
data: { model: $("form").serialize(), stepList: thisStepList },
async: false,
success: function(errors) {
console.log("Errors...");
if (errors.length > 0) {
anyServerError = true;
}
for (var i = 0; i < errors.length; i++) {
console.log(errors[i].ErrorMessage);
self.errorList += "<li>" + errors[i].ErrorMessage + "</li>";
}
}
});
的控制器看起來像這樣:
[HttpPost]
public ActionResult ValidateReport(MyTemplate model, string stepList)
{
var errors = model.Validate();
return Json(errors);
}
模型參數是空白的,並且不解析爲MyTemplate的對象。帖子參數正常。
你可以發佈你可以看到在提琴手或螢火蟲發佈的值?還發布MyTemplate類 – Rafay 2012-02-20 17:45:25
您的問題可能在您發佈的數據中。 $(「form」)。serialize()'會將你的表單序列化爲後期數據('foo = bar&bar = baz'),然後jQuery將會再次序列化,因爲你將一個對象作爲'data'傳遞。所以你會發布類似'model = foo%3Dbar%26bar%3Dbaz&stepList = ...'。服務器以什麼格式預期數據?我猜想將'serialize'更改爲'serializeArray'可能會有所裨益。 – 2012-02-20 18:15:54
這裏的響應的採樣:模型\t ReportId = c86b8427-e249-4384-bc47-5300b2f9e346&用戶Id = ee733263-8fe3-41a9-b511-7e501e0bf2df&CompanyId = 10c5caf6-b50f-4b31-8842-4a257dde9275&REPORTNAME =測試+現在&TimePeriodType =昨天 步驟列表\t ReportName,ReportList,ReportTypes – Matt 2012-02-21 08:56:01