MVC如何传递&读取动态生成的行的id值

时间:2014-01-26 17:17:46

标签: jquery asp.net-mvc asp.net-mvc-4

我有一个显示员工姓名ID等的表的页面。每个项目都有编辑链接。当用户单击编辑链接时,它会打开一个包含员工详细信息的新模式框。 模态寡妇与父窗口具有相同的模型。事实上,我将相同的模型传递给模态窗口。

请注意,当用户点击编辑链接时,我不想调用任何操作方法。我只是在单击编辑按钮时显示详细信息(在文本字段中)。当用户在编辑后单击“保存”按钮时,我会调用操作来更新数据库。

我正在使用代码第一种方法

请考虑以下代码

@model IEnumerable<WebApplication1.Models.employee>

...

         @foreach (var item in Model) {
                <tr>
                    <td>
                        @Html.DisplayFor(modelItem => item.name)
                    </td>
                    <td>
                        @Html.DisplayFor(modelItem => item.age)
                    </td>
                    <td>
                        @Html.DisplayFor(modelItem => item.address)
                    </td>
                    <td>
                        @* I want to pass the value of employee ID when user click this link *@
                        <a data-toggle="modal" data-target="#myModal" id="editlink1" >Edit..</a>
                    </td>
                </tr>
            }

//////

             <!-- Modal -->
                <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                    <div class="modal-dialog">
                        <div class="modal-content">
                            <div class="modal-header">
                                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                                <h4 class="modal-title" id="myModalLabel">Modal title</h4>
                            </div>
                            <div class="modal-body">
                               Name of the Employee clicked is <TODO>
                            </div>
                            <div class="modal-footer">
                                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                                <button type="button" class="btn btn-primary">Save changes</button>
                            </div>
                        </div><!-- /.modal-content -->
                    </div><!-- /.modal-dialog -->
                </div><!-- /.modal -->

我想知道如何在点击编辑链接时传递员工ID,以及如何在模态窗口中访问传递的值。

请注意Index&amp; amp;的模型。模态窗口是相同的,这是因为在模态窗口中我可以选择移动到下一条记录。

3 个答案:

答案 0 :(得分:1)

在通过foreach循环动态生成链接时,为链接提供类似linkEmployee的类,并为所有这些链接提供id,如lnkEmployee_ + EmployeeID 所以你的链接就像lnkEmployee_2,lnkEmployee_4,lnkEmployee_5,其中2,4和5将是你的员工ID。

$(document).ready(function(){
     var EmployeeID='';

     $('.linkEmployee ').click(function(){
     //Get the ID of currently clicked link like.
     var ID= $(this).attr('id');

     //split the ID by '_' and get the employee ID as below
     EmployeeID=ID.split('_')[1];

     //Employee ID is the desired ID on the Edit click which will be present globally                           everyehere in the javascript. you can use this ID to open your MODAL popup .


     lblHiddenEmployeeID.text(EmployeeID);
     })        
})

获取此全局员工ID后,您可以将此ID作为文本分配给标签,该标签作为隐藏字段出现在您的MODAL BOX中。

您可以在MODAL BOX中以您希望的方式使用此标签文本。

希望这会对你有所帮助。

答案 1 :(得分:0)

你应该通过Javascript或最好使用jQuery来做到这一点。每当您不需要调用服务器时,它就是使用某些客户端编程(JS)的首选解决方案。

快速了解jQuery:

  

http://learn.jquery.com/

答案 2 :(得分:0)

使用您的部分或普通视图

 foreach (var item in Model)
    {
    ...
    ...
    <p class="row-doctor-details-row1"><a href="#" data-toggle="modal" data-target="#@item.Id"> @item.Name</a></p>
    ....
    ...
    <div class="modal fade" id="@item.Id" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    ...
    your details to show
    ...
    <div>
    }