JQuery код:
//This passes NULL for "CategoryID", "CategoryName", "ProductID", "ProductName"
$("#btnPost").click(function () {
var CategoryModel = {
CategoryID: 1,
CategoryName: "Beverage"
};
var ProductModel = {
ProductID: 1,
ProductName: "Chai"
};
var data1 = {};
data1["cat"] = CategoryModel;
data1["prd"] = ProductModel;
var jsonData = JSON.stringify(data1);
$.ajax({
url: url + '/Complex/ModelTwo', //This works but property values are null
type: 'post',
dataType: 'json',
data: { "cat": CategoryModel, "prd": ProductModel }, //jsonData,
cache: false,
success: function (result) {
alert(result);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(thrownError);
}
});
});
Код MVC (C #):
public class ComplexController : Controller
{
public string ModelOne(Category cat)
{
return "this took single model...";
}
public string ModelTwo(Category cat, Product prd)
{
return "this took multiple model...";
}
}
public class Category
{
public int CategoryID { get; set; }
public string CategoryName { get; set; }
}
public class Product
{
public int ProductID { get; set; }
public string ProductName { get; set; }
}
Теперь проблема в том, что я не могу заставить его работать, передав «CategoryMode», «ProductModel» в метод действия «ModelTwo». Пост JQuery правильно определяет метод действия «ModelTwo», но значения свойств «cat», «prd» равны нулю. «CategoryID», «CategoryName», «ProductID», «ProductName» - все равно NULL, несмотря на использование этого метода.
//THIS ONE WORKS FINE...
$("#btnPost").click(function () {
var CategoryModel = {
CategoryID: 1,
CategoryName: "Beverage"
};
var ProductModel = {
ProductID: 1,
ProductName: "Chai"
};
var data1 = {};
data1["cat"] = CategoryModel;
data1["prd"] = ProductModel;
var jsonData = JSON.stringify(data1);
$.ajax({
url: url + '/Complex/ModelOne', //This works
type: 'post',
dataType: 'json',
data: CategoryModel,
cache: false,
success: function (result) {
alert(result);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(thrownError);
}
});
});
Так что же не так с моим первым вызовом JQuery метода действия "ModelTwo"?
Я потратил много времени на выяснение этого, но не уверен, что происходит. Здесь нет проблем с маршрутизацией, потому что я могу выбрать правильный метод действия ...
Любая помощь будет принята с благодарностью.
Спасибо!