Tôi là nhà phát triển Java mới với .NET. Tôi đang làm việc trên một dự án .Net MVC2 nơi tôi muốn có một cái nhìn một phần để bọc một widget. Mỗi đối tượng widget JS có một đối tượng dữ liệu JSON sẽ được điền bởi dữ liệu mô hình. Sau đó, phương pháp để cập nhật dữ liệu này ràng buộc với các sự kiện khi dữ liệu được thay đổi trong tiện ích hoặc nếu dữ liệu đó được thay đổi trong tiện ích con khác. Mã là một cái gì đó như thế này.ASP.NET MVC: Cách chuyển đổi Xem mô hình thành đối tượng Json
MyController
virtual public ActionResult DisplaySomeWidget(int id)
{
SomeModelView returnData = someDataMapper.getbyid(1);
return View(myview, returnData);
}
myview.ascx
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<SomeModelView>" %>
<script type="text/javascript">
//creates base widget object;
var thisWidgetName= new Widget();
thisWidgetName.updateTable= function() {
// UpdatesData
};
$(document).ready(function() {
thisWidgetName.data = <% converttoJSON(model) %>
$(document).bind('DATA_CHANGED', thisWidgetName.updateTable());
});
</script>
<div><%:model.name%></div>
Những gì tôi không biết là làm thế nào để gửi dữ liệu qua như SomeModelView và sau đó có thể sử dụng để cư tiện ích cũng như chuyển đổi nó thành Json. Tôi đã có một số cách thực sự đơn giản để làm điều đó trong bộ điều khiển nhưng không phải trong xem. Tôi hình dung đây là câu hỏi cơ bản Tôi đã đi vài giờ để làm cái này.
Tôi biết đây là một câu hỏi cũ. Nhưng đến hôm nay, có nhiều cách tốt hơn để làm điều đó. Không kết hợp nội dòng JSON với kết quả Xem của bạn. JSON dễ dàng được nối tiếp qua AJAX và có thể được xử lý như đối tượng. Mọi thứ trong JavaScript phải tách biệt với Chế độ xem. Bạn có thể dễ dàng trả về các mô hình mà không cần bất kỳ nỗ lực nào thông qua Bộ điều khiển. – ppumkin