从MVC视图传递值到Javascript函数

时间:2014-07-18 17:57:21

标签: javascript jquery asp.net-mvc razor

我有一个包含多列和一个开关的HTML表。我在表格中显示数据库中的信息。桌子有一个开关。当用户点击开关时我想将UserId传递给AJAX函数并运行脚本,但是我无法在javascript函数中检索该值。

以下是有问题的HTML Razor代码的一部分:

@model IEnumerable<WebApplication8.Models.ManageUserViewModel>
@foreach (var item in Model)
{

    string UserId = @Html.DisplayFor(model => item.UserId).ToString();
    Session["UserId"] = UserId;    
    <tr>
        <td style="display:none" id="UserId">@UserId</td>
        <td align="center">
            <div class="btn-group btn-toggle">
                @if (item.ActiveUser)
                {
                    <button class="btn btn-sm btn-success active" >ON</button>  
                    <button class="btn btn-sm btn" onclick="test()">OFF</button>  
                }
                else
                {
                    <button class="btn btn-sm btn" onclick="On()">ON</button>
                    <button class="btn btn-sm btn-success active">OFF</button>
                }
            </div>



        </td>
   </tr>
 }

这是迷你测试功能,我试图获取UserId的值:

function test(){

     var UserId = document.getElementById('UserId');
     alert ('UserId');
    }

非常感谢任何建议/解决方法。

1 个答案:

答案 0 :(得分:0)

你正在使用ajax,所以这不是必需的。只需在ajax指向的任何操作中使用Session [“UserId”]。

编辑:此外,您在此处尝试执行的操作很容易被客户端操纵,以便他们能够以这种方式访问​​其他用户帐户。你需要一些服务器端代码来验证他说他无论如何的用户......只需将所有用户信息留在服务器上。