【发布时间】:2012-01-24 12:27:54
【问题描述】:
有没有办法在选择下拉列表选项时刷新页面的某些部分(例如 div/span)...??请注意我使用的是剃刀语法。
如果是,请给出一些示例代码。
【问题讨论】:
标签: ajax asp.net-mvc asp.net-mvc-3 razor asp.net-mvc-ajax
有没有办法在选择下拉列表选项时刷新页面的某些部分(例如 div/span)...??请注意我使用的是剃刀语法。
如果是,请给出一些示例代码。
【问题讨论】:
标签: ajax asp.net-mvc asp.net-mvc-3 razor asp.net-mvc-ajax
是的,您可以订阅onchange 事件。
@Html.DropDownListFor(m => m.ItemId, Model.ItemList, "Select an item...", new { onchange = "somefunction();" })
大概是这样(真实例子):
@using (Ajax.BeginForm("Action", new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "divtoupdate", InsertionMode = InsertionMode.Replace }))
{
@Html.DropDownListFor(m => m.ItemId, Model.ItemList, "Select an item...", new { onchange = "doSubmit($(this).parents('form'));" })
}
然后有这个javascript函数(或类似的)
<script>
function doSubmit(form){
// event.preventDefault(); doesn't work in IE8 so do the following instead
(event.preventDefault) ? event.preventDefault() : event.returnValue = false;
form.submit();
}
</script>
编辑:本示例假设您正在使用不显眼的验证(因此是 jQuery)并希望提交一个表单,但您显然可以为 onchange 事件调用任何 javascript 函数并做任何您想做的事情... em>
【讨论】:
只需在您的代码中添加一些 javascript/jquery。像这样的。
$("#button").click(function(){
$("#div").load("www.wateveryourdatapageis.com");
});
【讨论】: