在javascript中访问模型数据成员的索引

时间:2014-07-09 18:39:32

标签: jquery asp.net-mvc razor

我目前正在开发一个调度应用程序,需要将当前视图模型中的数据导入模型,以便从页面加载部分视图。应该发生的是当用户单击记录行时,会弹出一个模态窗口以显示有关该记录的更多信息。

但是,我无法从模型中访问我需要的数据以发送到控制器,然后填充模态对话框。有没有人有一个很好的方法来解决这个限制或告诉我我做错了什么?谢谢!

编辑:我知道我不能使用剃刀语法来获取我的javascript中的数据。我正在寻找解决方法。

相关HTML:

<tbody>
        @foreach (var s in Model.requests)
        {
            <tr>
                <td id="@s.cliID">@s.clientName</td>
                <td id="@s.projectID">@s.projectName</td>
                <td id="@s.resourceID">@s.resource</td>
                <td id="@s.resourceType">@s.resourceType</td>
                <td id="@s.startDate">@s.startDate</td>
                <td id="@s.endDate">@s.endDate</td>
                <td id="@s.status">@s.status</td>
                <td style="color: blue;"><u>Open link</u></td>
                <td class="rowDialog"></td>
            </tr>
        }
    </tbody>

相关JS:

$(document).ready(function () {
        var $dialog = $('.rowDialog').dialog({
            autoOpen: false,
            width: 600,
            position: { my: 'top', at: 'top+150' },
            modal: true,
            title: "Request View/ Approval",
            dialogClass: 'alert',
            draggable: false,
            closeOnEscape: true,

            buttons: {
                "Close": function () {
                    $dialog.dialog('close');
                }
            }

        });

        $("tr").click(function () {
            var rowClicked = $(this);
            var index = rowClicked.index();

            $dialog.get(
                "/ScheduleRequests/RequestViewApproval",
                {
                    // Errors thrown by these lines
                    'clientName' : @Model.requests[index].clientName,
                    'location' : @Model.requests[index].location,
                    'projectName' : @Model.requests[index].projectName,
                    'resource' : @Model.requests[index].projectName,
                    'startDate' : @Model.requests[index].startDate,
                    'endDate' : @Model.requests[index].endDate,
                    'monHours' : @Model.requests[index].monHours,
                    'tuesHours' : @Model.requests[index].tuesHours,
                    'wedHours' : @Model.requests[index].wedHours,
                    'thursHours' : @Model.requests[index].thursHours,
                    'friHours' : @Model.requests[index].friHours
                }
                );
            $dialog.dialog("open");
        });

    });

1 个答案:

答案 0 :(得分:1)

我最初通过将AJAX调用移动到单独的函数并将所需的值作为变量传递来解决此问题。但是,正如我最近发现的那样,可以通过简单地用引号括起来访问Javascript中的剃刀视图代码。我觉得有点傻,但是嘿,学习。