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.
谢谢.
解决方法
您可以订阅下拉列表的.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,当您尝试访问模型时,部分将崩溃.