2017-06-29 4 views
0

IEnumerableを使用して、すべてGroupsをデータベースに登録しています。私は各グループの後にリストされているグループContactsを持っています。私は、 "Add Group Contact"ボタンがクリックされたときに表示されるモーダルを持っていて、ユーザーは追加する連絡先を選択できます。クリックしたアイテムに応じて異なるrouteValueを持つBeginForm()

問題は、グループの[Add Group Contact]ボタンをクリックしたときに変更する必要がある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 }をやって試してみましたが、私は何をしたいですする。

+0

あなた 'addContact()'関数で、あなただけの '

'要素の 'action'属性を更新することができます。 –

+0

このようなサウンドは 'addContact'関数で行うべきです:' $( 'form')。attr( 'action'、 '[action URL]') '。フォームにIDがバインドされていない場合は、 'form'セレクタを使用してください。 –

+0

ありがとうございます。両方のコメントありがとうございます。これは初めてのJQueryになるでしょう!やってみます。 –

答えて

0

こんにちは、あなたは、フォームのIDを設定し、アクション属性を以下のようにjavascriptに設定できます。

@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> 

おかげ

カルティク

関連する問題