我必须对作为视图一部分的下拉列表的 onchange 事件进行 AJAX 调用。在更改事件中,我需要调用数据库,进行一些计算以显示 UI,然后使用计算来填充图表控件。
UI 显示按此顺序。
图表
下拉类别列表
带有评分的子类别列表
因此,我需要在更改事件的 div3 中显示类别评级,使用评级分数来填充图表。
在 .NET 中很容易完成,但在 MVC 中如何?我能想到的唯一选择是创建带有代码的用户控件,但这违背了使用 MVC 的目的。
任何帮助表示赞赏。
以下是如何实现这一点的一般想法。
<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>
这是您的控制器操作方法。
[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);
}
我想这就是您正在寻找的答案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)