【发布时间】:2012-03-22 11:08:53
【问题描述】:
JQuery 代码:
//这为“CategoryID”、“CategoryName”、“ProductID”、“ProductName”传递NULL $("#btnPost").click(function () { var CategoryModel = { 类别ID:1, 类别名称:“饮料” }; 变种产品型号 = { 产品编号:1, 产品名称:“柴” }; 变量数据1 = {}; data1["cat"] = CategoryModel; data1["prd"] = 产品型号; var jsonData = JSON.stringify(data1); $.ajax({ url: url + '/Complex/ModelTwo', //这可行,但属性值为空 类型:'发布', 数据类型:'json', data: { "cat": CategoryModel, "prd": ProductModel }, //jsonData, 缓存:假, 成功:函数(结果){ 警报(结果); }, 错误:函数(xhr,ajaxOptions,throwError){ 警报(抛出错误); } }); });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”都是空的,尽管点击了那个方法。
//这个工作正常... $("#btnPost").click(function () { var CategoryModel = { 类别ID:1, 类别名称:“饮料” }; 变种产品型号 = { 产品编号:1, 产品名称:“柴” }; 变量数据1 = {}; data1["cat"] = CategoryModel; data1["prd"] = 产品型号; var jsonData = JSON.stringify(data1); $.ajax({ url: url + '/Complex/ModelOne', //这行得通 类型:'发布', 数据类型:'json', 数据:类别模型, 缓存:假, 成功:函数(结果){ 警报(结果); }, 错误:函数(xhr,ajaxOptions,throwError){ 警报(抛出错误); } }); });那么我对“ModelTwo”操作方法的第一次 JQuery 调用有什么问题?
我花了很多时间解决这个问题,但不确定发生了什么。这里的路由没有问题,因为我可以找到正确的操作方法...
任何帮助将不胜感激。
谢谢!
【问题讨论】:
标签: jquery json asp.net-mvc-3