【发布时间】:2014-12-29 16:58:22
【问题描述】:
i have a drop down list that when a value is selected, a partial view rendering the relevant data is supposed to be shown.我已经用了几天了,因为我是新手,似乎无法让它工作。帮助任何人。
索引
@{ ViewBag.Title = "Voyage Information"; }
@using (Ajax.BeginForm("Index", "VM", new AjaxOptions { UpdateTargetId = "VMResults" }))
{
<div id="container">
<label for="ddlvm"><strong>Select Vessel</strong></label>
@Html.DropDownListFor(m =>m.Vessel_ID,(SelectList)ViewBag.ddl, "-- Select Vessel --", new {@id =
"ddlvm"})
<br/><br/>
<div id="VMResults">
</div>
</div>
}
<script type="text/javascript">
$(document).ready(function () {
$("#ddlvm").change(function () {
var vId = $("#ddlvm").val();
$("#VMResults").load('@(Url.Action("GetVessel","VM",null, Request.Url.Scheme))?vId=' +
vId);
});
});
控制器
public ActionResult Index()
{
ViewBag.ddl = new SelectList(db.X_VesselMaster.OrderBy(x => x.Vessel_Name), "Vessel_ID", "Vessel_Name");
return View();
}
[HttpGet]
public ActionResult GetVessel(int y)
{
var viewModel = new VoyageData();
viewModel.VesselMasters = db.X_VesselMaster.Where(i => i.Vessel_ID == (y)).Include(i =>
i.X_Vessel_Transaction_Header).ToList();
if (y != null)
{
viewModel.Vessel_Transaction_Headers = viewModel.VesselMasters.Single(i => i.Vessel_ID ==
(y)).X_Vessel_Transaction_Header.Where(c => c.Deleted <= 0).ToList();
}
return PartialView("_Voyages", viewModel);
}
局部视图
@model ......
<table>
<thead>
<tr><th>Vessel ID</th></tr>
<tr>
<th>Arrived</th>
</tr>
</thead>
@foreach (var m in Model.Vessel_Transaction_Headers)
{
<tr><td>@m.Vessel_ID</td></tr>
<tr>
<td>@m.Arrived</td>
</tr>
}
</table>
【问题讨论】:
-
在您的控制器中,您需要一个名为
y的参数,但您发送了一个参数?vId=
标签: asp.net-mvc-4 razor asp.net-mvc-partialview cascadingdropdown