Asp.net-Mvc
使用 jquery Ajax 載入 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等於下拉列表選擇值。謝謝。
您可以訂閱
.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 包裝部分:
<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並且當您嘗試訪問模型時您的部分將崩潰。