Код 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"?
Я потратил много времени, выясняя это, но не уверен, что происходит. Здесь нет проблем с маршрутизацией потому что я могу найти правильный метод действия...
Любая помощь будет принята с благодарностью.
Спасибо!