PartialView
@model OsosYeni23072012.Models.TblMeters
<h3>
Model.customer_name
</h3>
<h3>
Model.meter_name
</h3>
控制器
[HttpGet]
public ActionResult MeterInfoPartial(string meter_id)
{
int _meter_id = Int32.Parse(meter_id);
var _meter = entity.TblMeters.Where(x => x.sno == _meter_id).FirstOrDefault();
return PartialView("MeterInfoPartial", _meter);
}
剃刀
@Html.DropDownList("sno", new SelectList(Model, "sno", "meter_name"), "-- Select Meter --", new { id = "meters"})
@Html.Partial("MeterInfoPartial")
如果下拉列表更改,我想加载部分视图。但我不知道我怎么能这样做。我找不到任何关于此的例子。我用actionlink这样做。但我之前没有下拉。
控制器参数meter_id
等于dropdownlist selectedvalue。
感谢。
答案 0 :(得分:19)
您可以订阅下拉列表的.change()
事件,然后触发AJAX请求:
<script type="text/javascript">
$(function() {
$('#meters').change(function() {
var meterId = $(this).val();
if (meterId && meterId != '') {
$.ajax({
url: '@Url.Action("MeterInfoPartial")',
type: 'GET',
cache: false,
data: { meter_id: meterId }
}).done(function(result) {
$('#container').html(result);
});
}
});
});
</script>
然后你将使用给定id的div包装partial:
<div id="container">
@Html.Partial("MeterInfoPartial")
</div>
另外,为什么要在控制器操作中解析,将其留给模型绑定器:
[HttpGet]
public ActionResult MeterInfoPartial(int meter_id)
{
var meter = entity.TblMeters.FirstOrDefault(x => x.sno == meter_id);
return PartialView(meter);
}
小心使用FirstOrDefault
,因为如果在meter_id
中找不到匹配的记录,它会返回null
,当你尝试时,你的部分会崩溃访问模型。
答案 1 :(得分:0)
<script type="text/javascript">
$(function() {
$('#addnews').click(function() {
$.ajax({
url: '@Url.Action("AddNews", "Manage")',
type: 'GET',
cache: false,
}).done(function(result){
$('#containera').html(result);
});
});
});
</script>