如何在另一个页面上显示我选择的项目?
Posted
技术标签:
【中文标题】如何在另一个页面上显示我选择的项目?【英文标题】:How can i show my selected item on another page? 【发布时间】:2016-09-04 07:50:53 【问题描述】:我的项目是一个简单的电话簿,我想删除我的(家庭控制器)索引中的一个联系人(左图)并将其信息发送到确认页面(右图)我想显示所选联系人的数据
(例如,如果您删除了 gjgj,它的信息会显示在右侧)
这是我的看法
@model IEnumerable< Project1.Models.EF_Model.Phone_book>
@
ViewBag.Title = "Delete";
<h2>Delete</h2>
<h3>Are you sure you want to delete this?</h3>
@ViewBag.Massage
<div>
<h4>Phone_book</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@html.DisplayNameFor(model => model.Id)
</dt>
<dd>
@Html.DisplayFor(model =>model.Id )
</dd>
<dt>
@Html.DisplayNameFor(model => model.First_Name)
</dt>
<dd>
@Html.DisplayFor(model => model.First_Name)
</dd>
<dt>
@Html.DisplayNameFor(model => model.Last_Name)
</dt>
<dd>
@Html.DisplayFor(model => model.Last_Name)
</dd>
<dt>
@Html.DisplayNameFor(model => model.Number)
</dt>
<dd>
@Html.DisplayFor(model => model.Number)
</dd>
<dt>
@Html.DisplayNameFor(model => model.Email)
</dt>
<dd>
@Html.DisplayFor(model => model.Email)
</dd>
<dt>
@Html.DisplayNameFor(model => model.Address)
</dt>
<dd>
@Html.DisplayFor(model => model.Address)
</dd>
</dl>
@using (Html.BeginForm())
@Html.AntiForgeryToken()
@Html.HiddenFor(model => model.Id)
<div class="form-actions no-color">
<input type="submit" value="Delete" class="btn btn-default" /> |
@Html.ActionLink("Back to List", "Index")
</div>
</div>
这是索引代码(左图)
@model IEnumerable<Project1.Models.EF_Model.Phone_book>
@
ViewBag.Title = "Index";
<br /><br />
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Id)
</th>
<th>
@Html.DisplayNameFor(model => model.First_Name)
</th>
<th>
@Html.DisplayNameFor(model => model.Last_Name)
</th>
<th>
@Html.DisplayNameFor(model => model.Number)
</th>
<th>
@Html.DisplayNameFor(model => model.Email)
</th>
<th>
@Html.DisplayNameFor(model => model.Address)
</th>
<th></th>
</tr>
@foreach (var item in Model)
<tr>
<td>
@Html.DisplayFor(modelItem => item.Id)
</td>
<td>
@Html.DisplayFor(modelItem => item.First_Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Last_Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Number)
</td>
<td>
@Html.DisplayFor(modelItem => item.Email)
</td>
<td>
@Html.DisplayFor(modelItem => item.Address)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new id = item.Id ) |
@Html.ActionLink("Details", "Index", new id = item.Id ) |
@Html.ActionLink("Delete", "Delete", new id = item.Id )
</td>
</tr>
</table>
这是我在视图中使用的模型
public partial class Phone_book
public int Id get; set;
public string First_Name get; set;
public string Last_Name get; set;
public string Number get; set;
public string Email get; set;
public string Address get; set;
这是我的获取和发布代码
[HttpGet]
// [HttpDelete]
public ActionResult Delete(int? _id)
Ref_ViewModel = new ViewModel.ViewModel();
var i = Ref_ViewModel.Select(_id);
return View(i);
#endregion
#region [- Post -]
[HttpPost]
//[HttpDelete]
public ActionResult Delete(Models.EF_Model.Phone_book _Model)
if (ModelState.IsValid)
Ref_ViewModel = new ViewModel.ViewModel();
Ref_ViewModel.Delete(_Model.Id);
else
ViewBag.Massage = "Choose a Contact";
return View(_Model);
#endregion
我怎样才能在这部分显示我选择的联系人?
【问题讨论】:
【参考方案1】:按如下方式使用 ActionLink 重定向到另一个在 Delete 视图中带有 id say 的页面:
@Html.ActionLink("Add To Cart", "ProductDetails", "Product", new id = item.ProductId , new @class = "btn btn-default", alt = "@Model.ProductName" )
最后使用以下方法从控制器中的 url 中获取 id,并在 Delete 视图中获取详细信息:
int id = Convert.ToInt32(Url.RequestContext.RouteData.Values["id"]);
请查看链接:http://kristianguevara.net/creating-your-asp-net-mvc-5-application-from-scratch-for-beginners-using-entity-framework-6-and-identity-with-crud-functionalities/
【讨论】:
我在这部分出现错误 [new id = item.ProductId ] 这里的项目是什么? 我用它在视图中迭代一个循环。您在表中有一个主键,并在重定向到删除视图的视图中使用模型(如 Model.YourTableId)中的主键。 写了这个 ->> new id=Model.Id ,得到这个错误 ->> 无法将方法组分配给匿名类型属性 我只有 2 个视图,第一个是索引,第二个是我的删除(虽然编辑了问题) 分享您用来重定向到删除视图的视图和您正在使用的模型。以上是关于如何在另一个页面上显示我选择的项目?的主要内容,如果未能解决你的问题,请参考以下文章
OS X Server Wiki - 如何让 wiki 页面的内容显示在另一个 wiki 页面上
如何在屏幕中选择图像并使用 kivy 将其显示在另一个屏幕上?