从视图向控制器发送HTML元素文本

时间:2014-08-18 12:28:49

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

我从这样的视图调用控制器上的一个函数:(当用户按下按钮时)

  <input id="deactive_btn" type="button" value="Deactive" class="btn btn-default" onclick="location.href='@Url.Action("SetActive", "Home", new { email = ??? ,activeStatus = ???  })'"/>

此按钮的删除是:

我有一个显示给管理员的用户列表,管理员允许停用用户(管理员可以通过按“停用”按钮来实现)

现在我需要向控制器中的“SetActive”函数发送用户的电子邮件,以便我们可以查看并停用用户,用户的电子邮件显示在用户表中的TD中,我给了它ID如何从中获取值(来自html元素)并将其放在这里:

@Url.Action("SetActive", "Home", new { email = HERE!

这是我的列表用户的完整代码:

foreach (AppUser appUser in userList)
{
    <tr>
        <td width="15%">@appUser.name</td>
        <td class="text-left" width="15%">@appUser.date.Substring(0, appUser.date.IndexOf(" "))</td>
        <td class="text-left" width="10%">@appUser.role</td>
        <td id="user_email" class="text-left" width="24%">@appUser.email</td>
        <td class="text-left" width="10%"><span id=@Url.Content("status_lbl" + index) class="label label-success">Active</span></td>
        <td class="btn-group-sm text-center">
            <input id="@Url.Content("freeze_btn" + index)" type="button" value="Deactivate" class="btn btn-default" onclick="location.href='@Url.Action("SetActive", "Home", new { email =  ,activeStatus = Html  })' "  />
            <input type="button" value="Edit" class="btn btn-default " />
            <input type="button" value="Delete" class="btn btn-default " />
        </td>
    </tr>
    index++;
}

这是我的Jquery脚本:

$('input[id^=freeze_btn]').click(function (event) {
    var btn = $(event.target);
    var text = $(this).attr('value');
    var newid = $(this).attr('id').replace('freeze_btn', 'status_lbl');
    if (text == "Active") {
        btn.val("Deactivate");
        $('#' + newid).removeClass("label-danger").addClass("label-success").text("Active");
    }
    if (text == "Deactivate") {
        btn.val("Active");
        $('#' + newid).removeClass("label-success").addClass("label-danger").text("Unactive");
    }
});

我想我可以使用表单来完成它,但还有其他方法吗?

在html表单上有ajax表单的动机吗?

1 个答案:

答案 0 :(得分:0)

由于每一行都有自己的按钮,你很好。您可以使用Razor在HTML属性中设置值:

<input onclick="location.href='@Url.Action("SetActive", "Home", 
    new { email = appUser.Email.ID ,activeStatus = Html  })' "  />

我删除了一些代码以便于阅读。