具有不同routeValue的BeginForm()取决于单击的项目

时间:2017-06-29 07:01:24

标签: html asp.net-mvc html.beginform

我正在使用IEnumerable列出我的数据库中的所有Groups。我在每个组之后列出了Contacts组。我希望在单击“添加群组联系人”按钮时显示一个模式,这将允许用户选择要添加的联系人。

问题在于我传入的routeValue属性需要根据单击的“添加组联系人”按钮进行更改。我不知道该怎么做。

这是我的代码:

@model IEnumerable<ContactManager.Models.Groups>
...
@foreach (var item in Model)
{
    ...
    <span style="font-size:120%"><b>Group Contacts</b></span>
    <span><a id="addBtn" href="javascript:addContact(@item.Group.GroupId);">Add Group Contact</a></span>
    ...
}

@using (Html.BeginForm("Delete", "Groups", routeValues: new { id = placeholder }, method: FormMethod.Post))
{
    @Html.AntiForgeryToken()

    <div id="myModal" class="modal">
        ...
    </div>
}


<script>
    var modal = document.getElementById('myModal');
    function addContact(id){
        modal.style.display = "block";
    }
</script>

研究收益并不多,但我尝试将模态代码放在foreach语句中并直接执行routeValues: new { id = @item.Group.GroupId }当然不起作用,但这是我想要做的。

1 个答案:

答案 0 :(得分:0)

您好,您可以在下面的javascript中输入表单的id并设置action属性。

@using (Html.BeginForm("Delete", "Groups", routeValues: new { id = placeholder }, method: FormMethod.Post ,  , new { @id = "frm1" }))
{
    @Html.AntiForgeryToken()

    <div id="myModal" class="modal">
        ...
    </div>
}

Javascript代码:

<script>
    var modal = document.getElementById('myModal');
    function addContact(id){
        modal.style.display = "block";
    $('#frm1').attr('action', '../groups/delete?id=id')

    }
</script>

由于

KARTHIK