Tôi đang sử dụng jQuery để thực hiện cuộc gọi Ajax bằng cách sử dụng Bài đăng trong ASP.NET MVC. Tôi muốn có thể chuyển một Từ điển các giá trị. Điều gần nhất tôi có thể nghĩ đến là vượt qua trong một mảng đa chiều của các chuỗi, nhưng kết quả thực sự được chuyển đến phương thức ActionResult là một mảng chuỗi một chiều có chứa một chuỗi nối của "khóa/giá trị". "cặp.Làm cách nào để chuyển một Từ điển làm tham số cho một phương thức ActionResult từ jQuery/Ajax?
Ví dụ mục đầu tiên trong "giá trị" mảng dưới đây chứa các giá trị dưới đây:
"id,200"
Dưới đây là một ví dụ về phương pháp ActionResult tôi:
public ActionResult AddItems(string[] values)
{
// do something
}
Dưới đây là một ví dụ về cách tôi m gọi phương thức từ jQuery:
$.post("/Controller/AddItems",
{
values: [
["id", "200"],
["FirstName", "Chris"],
["DynamicItem1", "Some Value"],
["DynamicItem2", "Some Other Value"]
]
},
function(data) { },
"json");
Có ai biết cách chuyển từ điển o từ jQuery đến phương thức ActionResult thay vì một mảng?
Tôi thực sự muốn xác định ActionResult của tôi như thế này:
public ActionResult AddItems(Dictionary<string, object> values)
{
// do something
}
Bất kỳ lời đề nghị?
CẬP NHẬT: Tôi đã thử chuyển dấu phẩy trong giá trị và về cơ bản nó không thể phân tích cú pháp cặp khóa/giá trị bằng phân tích chuỗi.
đèo này:
values: [
["id", "200,300"],
["FirstName", "Chris"]
]
kết quả trong việc này:
values[0] = "id,200,300";
values[1] = "FirstName,Chris";
Tôi không nghĩ rằng có một cách để làm that.I có thể sai, nhưng nó sẽ là tầm thường để phân tích các dữ liệu được truyền vào như một mảng chuỗi và tự tạo từ điển bên trong phương thức AddItems. –
Không chắc chắn vấn đề phân tích cú pháp nào sẽ do bất kỳ dấu phẩy nào trong các giá trị gây ra. –
Cuối cùng tôi đã tìm ra, nhờ tất cả những ai đưa ra gợi ý! Tôi đã thêm giải pháp cuối cùng của tôi làm câu trả lời bên dưới. Tôi sẽ đánh dấu nó là Câu trả lời đúng ngay khi SO cho phép tôi. Cảm ơn mọi người! –