我是asp.net的新手。我做了一个显示项目列表的主视图。在同一个视图中,我有一个局部视图。
@{
ViewBag.Title = "Home Page";
}
<div class="row">
<div class="col-md-4">
<h2>Geräte Liste</h2>
@model IEnumerable<MDAVerwaltung.Models.Geraete>
@{
ViewBag.Title = "Index";
}
<!--url: "{controller}/{action}/{id}", -->
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.DeviceID)
</th>
<th>
@Html.DisplayNameFor(model => model.Bezeichnung)
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.DeviceID)
</td>
<td>
@Html.DisplayFor(modelItem => item.Bezeichnung)
</td>
</tr>
}
</table>
</div>
<div class="col-md-8">
<div class="col-md-8">
<h2>Geräte Informatioen</h2>
@Html.Action("GetDeviceDetails")
</div>
<div class="col-md-4">
<h2>Zusatzinformationen</h2>
</div>
</div>
</div>
您会看到使用@Html.Action("GetDeviceDetails")
调用部分视图。
现在我的左边是我的设备列表,我想点击一个项目并更新详细视图。
家庭控制器如下所示:
using System.Data.Entity;
using System;
using System.Net;
namespace MDAVerwaltung.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
var geraete = db.Geraete.Include(g => g.Mitarbeiter);
return View(geraete.ToList());
}
private MDAEntities db = new MDAEntities();
// GET: DeviceList
public ActionResult GetDeviceList()
{
var geraete = db.Geraete.Include(g => g.Mitarbeiter);
return View("_DeviceList",geraete.ToList());
}
public ActionResult GetDeviceDetails(int? id = 4)
{
Geraete geraete = db.Geraete.Find(id);
return View("_DeviceDetails",geraete);
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
}
}
就像你看到Home视图一样,局部视图使用相同的控制器。 部分视图如下所示:
Geräte Informationen123
@model MDAVerwaltung.Models.Geraete
<p>@Html.DisplayFor(model => model.Bezeichnung)</p>
<p>@Html.DisplayNameFor(model => model.DeviceID)</p>
但是如何将数据从列表传递到局部视图以更新这些? 有人可以解释这些或给我一个教程的链接吗?
答案 0 :(得分:1)
使用div
id
包裹您的部分视图:
<div id="deviceDetailId">
@Html.Action("GetDeviceDetails")
</div>
然后使用Ajax helper获取数据并更新:
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.DeviceID)
</td>
<td>
@Ajax.ActionLink(item.Bezeichnung, "GetDeviceDetails", "Home", new { id = item.DeviceID }, new AjaxOptions { UpdateTargetId = "deviceDetailId", HttpMethod = "GET" })
</td>
</tr>
}