Tôi phải thực hiện cuộc gọi AJAX trên sự kiện onchange của danh sách thả xuống là một phần của chế độ xem. Trong sự kiện thay đổi, tôi cần gọi cơ sở dữ liệu, thực hiện một số tính toán hiển thị giao diện người dùng và sau đó sử dụng các phép tính để điền vào một điều khiển biểu đồ. Màn hình giao diện người dùng nằm trong chuỗi này. Biểu đồ Danh sách thả xuống danh sách danh sách các danh mục phụ có điểm xếp hạng Vì vậy, bạn có thể cần hiển thị xếp hạng danh mục trong div3 trên sự kiện thay đổi, sử dụng điểm xếp hạng để điền biểu đồ. Dễ dàng thực hiện trong .NET nhưng làm thế nào để trong MVC ?? Tùy chọn duy nhất tôi có thể nghĩ đến là tạo điều khiển người dùng bằng mã phía sau nhưng đánh bại mục đích sử dụng MVC. Bất kỳ trợ giúp nào được đánh giá cao.Cuộc gọi AJAX trên sự kiện OnChange trong MVC
Trả lời
Xem xét sử dụng chế độ xem một phần. Có rất nhiều các liên kết nếu bạn google ASP.Net MVC Partial View nhưng đây là một trong tôi tìm thấy intestering
http://blog.stevensanderson.com/2008/10/14/partial-requests-in-aspnet-mvc/
Tôi không chắc tôi hoàn toàn hiểu những gì bạn đang cố gắng để làm, nhưng trong MVC đường Tôi có khả năng sẽ xử lý nó là kết nối với nhau một vài cuộc gọi AJAX. Bản cập nhật đầu tiên xếp hạng danh mục dựa trên lựa chọn. Điều này có khả năng trả về JSON để bạn có thể dễ dàng trích xuất các điểm xếp hạng. Điểm thứ hai lấy điểm xếp hạng được trả về lần đầu tiên và gọi một hành động biểu thị biểu đồ dưới dạng HTML - tức là, nó hiển thị một phần xem được trả về và chèn vào vị trí thích hợp trong tài liệu.
Đây là ý tưởng chung về cách bạn triển khai điều này.
<script type="text/javascript">
// assuming you're using jQuery
$("#ddlAjax").change(function (event) {
$.ajax({
url: "Controller/GetPartialGraph/" + $(this).val(),
data: { id = $(this).val() /* add other additional parameters */ },
cache: false,
type: "POST",
dataType: "html",
success: function (data, textStatus, XMLHttpRequest) {
$("#divPartialView").html(data); // HTML DOM replace
}
});
});
</script>
<select id="ddlAjax">
... list of options
</select>
<div id="divPartialView">
<!-- something like this in your ASP.NET View -->
<%= Html.RenderPartial("MyPartialView", Model) %>
</div>
Đây là phương pháp hành động điều khiển của bạn.
[HttpPost]
public PartialViewResult GetPartialGraph(int id /* drop down value */)
{
// do calculations whatever you need to do
// instantiate Model object
var model = myBusinessLogicService.DoCalculations(id);
return PartialView("MyPartialView", model);
}
Tôi nghĩ đây là câu trả lời bạn đang tìm kiếm.
Ok, nếu những gì bạn muốn ia một cách để gọi một sự kiện onchange khi một sự thay đổi DropDownList này có thể hữu ích:
@Html.DropDownListFor(
model => model.SelectedId,
new SelectList(ViewBag.Ids, "Id", "Name"),
"[All]",
new { onchange = "onChangeId();", @id ="municipalityDropDown" }
)
sau đó bạn có thể có điều này mã javascript và bạn mã ajax. Và đây là một ví dụ về mã jax để gọi một phương thức hành động.
function onChangeId() {
jQuery.ajax({
url: '@Url.Action("Action Method Name", "Controller Name")',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify({ data: data2 }),
success: function (result) { }
});
}
Dường như bạn chưa đọc câu hỏi. Anh ta không hỏi làm thế nào để kích hoạt mã onchange hoặc gửi một yêu cầu ajax. –
Vâng, đúng vậy - chỉ thay đổi được thay thế:
onchange = “this.form.submit();”
với:
onchange = “$(this.form).submit();”
tìm thấy nó trong this bài
- 1. ASP.NET MVC sai url trong cuộc gọi ajax
- 2. Nâng cao sự kiện nhấp nút phía máy chủ từ javascript trong cuộc gọi ajax
- 3. Cập nhật URL trên cuộc gọi AJAX?
- 4. Sự kiện Fire Onchange sau khi AutoComplete
- 5. sự kiện onclick không kích hoạt sau sự kiện onchange
- 6. Sự kiện Javascript so với cuộc gọi lại Trong kịch bản MVC
- 7. Ajax cuộc gọi thất bại trong Django
- 8. Sự kiện xảy ra lỗi cuộc gọi Ajax nhưng trả về 200 ok
- 9. Lỗi cuộc gọi ajax của jQuery ajax
- 10. jquery ajax - cài đặt chung. Có thể biết sự kiện/yếu tố nào kích hoạt cuộc gọi ajax không?
- 11. Thực hiện cuộc gọi ajax trong clojurescript
- 12. Sự kiện cho SELECT onchange với bàn phím
- 13. Lỗi AJAX cuộc gọi trên iPad sau 30 phút
- 14. onChange kiện với contenteditable
- 15. Thực hiện cuộc gọi Ajax đơn giản tới bộ điều khiển trong asp.net mvc
- 16. Ember.js: nhiều cuộc gọi Ajax trong một tuyến duy nhất
- 17. Gọi Javascript onchange sự kiện bởi programatically thay đổi giá trị textbox
- 18. Cuộc gọi Ajax tới tên miền phụ
- 19. Thực hiện cuộc gọi WCF với AJAX
- 20. Cuộc gọi tên miền chéo Ajax
- 21. Cuộc gọi đơn giản của jQuery Ajax
- 22. Biến sự kiện thành cuộc gọi không đồng bộ
- 23. Phát hiện cuộc gọi ajax, ASP.net
- 24. Cuộc gọi Ajax khi hết giờ
- 25. Trong cuộc gọi AJAX, 302 không được theo dõi
- 26. Cách thực hiện cuộc gọi ajax trong MVC4
- 27. Gọi javascript ajax trên trang tải
- 28. Làm thế nào để xử lý sự kiện onchange trên input type = file trong jQuery?
- 29. Jquery thực thi sự kiện onchange khi tải về
- 30. Làm cách nào để liên kết sự kiện onchange của TextBox bằng JQuery?
Đối với tôi nó hoạt động, nhưng tôi đã phải chỉ thay đổi: "dữ liệu: {id = $ (this) .val()}" thành "dữ liệu: {id: $ (this) .val()" - Lưu ý: "=" được thay bằng ":". Cảm ơn. – paweln66