如何在另一个页面上显示我选择的项目?

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 将其显示在另一个屏幕上?

APEX:显示/隐藏项目时如何自动调整项目宽度?

React - 在表格行上触发点击事件并在另一个页面中显示所选行的详细信息

如何在另一个页面获取数组详细信息