Tôi có Chế độ xem cho phép người dùng nhập/chỉnh sửa dữ liệu cho Tiện ích con mới. Tôi muốn tạo thành dữ liệu đó thành một đối tượng json và gửi nó đến bộ điều khiển của tôi thông qua AJAX vì vậy tôi có thể thực hiện xác nhận trên máy chủ mà không cần đăng lại.Cách chuyển loại phức tạp bằng cách sử dụng json sang bộ điều khiển ASP.NET MVC
Tôi đã làm việc đó, ngoại trừ tôi không thể biết cách truyền dữ liệu sao cho phương thức điều khiển của tôi có thể chấp nhận kiểu Widget phức tạp thay vì tham số riêng cho từng thuộc tính.
Vì vậy, nếu đây là đối tượng của tôi:
public class Widget
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
Tôi muốn phương pháp điều khiển của tôi để tìm một cái gì đó như thế này:
public JsonResult Save(Widget widget)
{
...
}
Hiện nay, jQuery của tôi trông như thế này:
var formData = $("#Form1").serializeArray();
$.post("/Widget/Save",
formData,
function(result){}, "json");
Biểu mẫu của tôi (Form1) có trường nhập cho mỗi thuộc tính trên Tiện ích con (Id, Tên, Giá). Điều này làm việc tuyệt vời, nhưng cuối cùng nó đi qua từng thuộc tính của Widget như một tham số riêng biệt cho phương thức điều khiển của tôi.
Có cách nào tôi có thể "chặn" dữ liệu, có thể sử dụng một ActionFilterAttribute, và deserialize nó vào một đối tượng Widget trước khi phương pháp điều khiển của tôi được gọi?
Tuyệt vời, vui vì bạn đã sửa nó. Và cảm ơn vì đã đăng cách bạn sửa nó, điều đó sẽ giúp ích rất nhiều trong tương lai! –
Các lĩnh vực công khai là sinh sản của quỷ trong .NET. Họ phá vỡ mọi thứ. MỌI MỌI TẤT CẢ BẠN! – Will
Cảm ơn. Điều này đã giúp tôi. –