Tôi đang cố gắng sử dụng trình trợ giúp ASP.NET MVC Ajax.BeginForm nhưng không muốn sử dụng các tùy chọn chèn nội dung hiện có khi cuộc gọi kết thúc. Thay vào đó, tôi muốn sử dụng một hàm JavaScript tùy chỉnh làm gọi lại.Làm thế nào để sử dụng Ajax.BeginForm MVC helper với kết quả JSON?
Công trình này, nhưng kết quả tôi muốn được trả về dưới dạng JSON. Thật không may, khuôn khổ chỉ xử lý dữ liệu dưới dạng một chuỗi. Dưới đây là mã khách hàng. Mã máy chủ chỉ trả về một JsonResult với một trường, UppercaseName.
<script type='text/javascript'>
function onTestComplete(content) {
var result = content.get_data();
alert(result.UppercaseName);
}
</script>
<% using (Ajax.BeginForm("JsonTest", new AjaxOptions() {OnComplete = "onTestComplete" })) { %>
<%= Html.TextBox("name") %><br />
<input type="submit" />
<%} %>
Thay vì hiển thị kết quả chữ hoa, thay vào đó là hiển thị không xác định. content.get_data() dường như chứa JSON, nhưng chỉ ở dạng chuỗi. Làm thế nào để tôi chuyển đổi nó thành một đối tượng?
Tất cả điều này có vẻ hơi phức tạp. Có cách nào tốt hơn để lấy nội dung kết quả bằng cách sử dụng Ajax.BeginForm không? Nếu điều này khó, tôi có thể bỏ qua Ajax.BeginForm hoàn toàn và chỉ sử dụng thư viện biểu mẫu jQuery.
bạn có thể hiển thị mã cho hành động điều khiển của bạn? – tvanfosson
Hành động điều khiển không phải là vấn đề. Nó theo nghĩa đen là một dòng: trả về Json (new {UppercaseName = name.ToUpper()}); –