我有像下面的控制器行動方法將返回來自數據庫的所有細節。如何在MVC中的鏈接點擊主視圖中渲染局部視圖..?
public ActionResult Index()
{
BusDataContext db = new BusDataContext();
List<BusDetails> buses = db.Bus.ToList();
return View(buses);
}
這將返回詳細列表到主視圖,這是強類型的視圖,如下所示。
@model IEnumerable<MVC_DAL.BusDetails>
<p>
@Html.ActionLink("Create New", "AddBus")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.BusSrlNo)
</th>
<th>
@Html.DisplayNameFor(model => model.BusName)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelIte => item.BusSrlNo)
</td>
<td>
@Html.DisplayFor(modelItem => item.BusName)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.BusSrlNo }) |
@*@Html.ActionLink("Details", "Details", new { id = item.BusSrlNo }) |*@
@Ajax.ActionLink("Details", "Details", new { id = item.BusSrlNo }, new AjaxOptions{UpdateTargetId="update" })
@Html.ActionLink("Delete", "Delete", new { id = item.BusSrlNo })
</td>
</tr>
}
</table>
<div id="update">
</div>
隨着模型類如
public class BusDetails
{
public int BusSrlNo { get; set; }
public string BusName { get; set; }
}
和細節ActionMethod由
public PartialViewResult Details(int id)
{
BusDataContext detail = new BusDataContext();
BusDetails bsdtledit = detail.Get_Edit(id);
return PartialView("Details",bsdtledit);
}
通訊與上述模型類局部視圖低於:
@model MVC_DAL.BusDetails
<div>
<h4>BusDetails</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.BusSrlNo)
</dt>
<dd>
@Html.DisplayFor(model => model.BusSrlNo)
</dd>
<dt>
@Html.DisplayNameFor(model => model.BusName)
</dt>
<dd>
@Html.DisplayFor(model => model.BusName)
</dd>
</dl>
</div>
<p>
@Html.ActionLink("Edit", "Edit", new { /* id = Model.PrimaryKey */ }) |
@Html.ActionLink("Back to List", "Index")
</p>
所以,總體來說,我需要要在主視圖中顯示上面的局部視圖,只有在單擊主視圖中的詳細信息鏈接動作後纔會顯示上述局部視圖。以上代碼將單獨顯示不帶主視圖的細節,而不是在div(id =「update」)部分的相同頁面中更新。 那麼我如何更新相同的主視圖..?
你聽說過阿賈克斯的? –
@ EhsanSajjad - 我試着按照Brian和Christos指定的方式。但是沒有用.. – Abhi