2014-05-23 8 views
7

सबमिट करें मैं एक एमवीसी 5 वेब अनुप्रयोग विकसित कर रहा हूं। मेरे रेजर व्यू में से एक के भीतर मेरे पास एक सारणी है जो डेटा की कई पंक्तियों को बाहर निकालती है। डेटा की प्रत्येक पंक्ति के अलावा एक हटाएं बटन है। जब उपयोगकर्ता डिलीट बटन पर क्लिक करता है तो मैं बूटस्ट्रैप मॉडल पॉपअप चाहता हूं और उपयोगकर्ता को उनके हटाने की पुष्टि करने के लिए कहता हूं।एमवीसी एक्शनलिंक और बूटस्ट्रैप मॉडल

@foreach (var item in Model.Data) { 
<tr> 
<td>...</td> 
<td>@Html.ActionLink("Delete", "Delete", new { id = item.ID }, new { @class = "btn btn-danger btn-xs", data_toggle = "modal", data_target = "#myModal" })</td> 
</tr> 
} 

यह है के रूप में, जब उपयोगकर्ता हटाएँ बटन मॉडल ठीक पॉप अप पर क्लिक करता है, लेकिन मैं अपने मॉडल के भीतर पुष्टि करें बटन को पारित करने के लिए Actionlink पैरामीटर में आईडी प्राप्त नहीं कर पा रहे हैं ताकि यह फिर मेरे नियंत्रक में हटाए गए कार्रवाई के लिए भेजा जाएगा।

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
      <h4 class="modal-title" id="myModalLabel">Delete Nomination</h4> 
     </div> 
     <div class="modal-body"> 
      Are you sure you wish to delete this nomination? 
     </div> 
     <div class="modal-footer"> 
      <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> 
      <button type="button" id="mySubmit" class="btn btn-primary">Confirm</button> 
     </div> 
     </div> 
     </div> 
</div> 

क्या कोई मदद कर सकता है?

धन्यवाद।

+2

पर एक क्लिक इवेंट असाइन करें जो आपके नियंत्रक को अजाक्स कॉल बनाता है और बस अपने आईडी को एक छिपे हुए क्षेत्र में संग्रहीत करता है। यदि आपको एक – heymega

+0

की आवश्यकता है तो मैं आपको एक उदाहरण दे सकता हूं क्या यह item.ID के बजाय नया {id = itemin.ID} नहीं होना चाहिए? क्योंकि आपने वैरिएबल नाम को आइटमिन – brothers28

+0

@heymega को आपके उत्तर के लिए धन्यवाद घोषित किया है। कोड का एक उदाहरण या स्निपेट बहुत अच्छा होगा। मुझे यकीन नहीं है कि एक्शनलिंक पैरामीटर आईडी को एक छिपे हुए क्षेत्र में कैसे प्राप्त करें? – tgriffiths

उत्तर

7
<script type="text/javascript"> 

    //Everytime we press delete in the table row 
    $('.delete').click(function(e) { 
     e.preventDefault(); 

     //Update the item to delete id so our model knows which one to delete 
     var id = $(this).data('id'); 
     $('#item-to-delete').val(id); 

    }); 


    //Everytime we press sumbit on the modal form... 
    $('#mySubmit').click(function() { 

     //Get the id to delete from the hidden field 
     var id = $('#item-to-delete').val(); 


     //Call our delete actionresult and pass over this id 
     $.post(@Url.Action("Delete", "Delete"), { id : id } , function (data) { 

      alert("Deleted"); 

     }); 


    }); 

</script> 

और अपने html ...

@Html.Hidden("item-to-delete", "", new { @id = "item-to-delete"}) 
@foreach (var item in Model.Data) { 
<tr> 
    <td>...</td> 

    <td><a href="" class="btn btn-danger btn-xs delete" data-toggle= "modal" data-target="#myModal" data-id="@item.id">Delete</a></td> 

</tr> 
} 

आपका नियंत्रक कार्रवाई मुझे लगता है कुछ इस तरह है ...

public ActionResult Delete(Guid id) 
{ 


} 
+0

उत्कृष्ट उत्तर। भले ही आपका कोड 100% सही न हो, फिर भी मैं इसे यहां से काम करने में सक्षम हूं। एक बार फिर धन्यवाद। – tgriffiths

+0

आपका स्वागत है :) – heymega

+0

बूटस्ट्रैप दस्तावेज़ में # आइटम-टू-डिलीट –

0

आप के बाद दूसरा फिर हटाएं एक अशक्त लगाने की जरूरत है इसे काम करना चाहिए, लेकिन आपको अभी भी इसके साथ कोई समस्या होगी क्योंकि यह करने का प्रयास करने और करने के लिए आपके मॉडल के अंदर पृष्ठ खोलना है जो आप करना चाहते हैं, यह हासिल करने का सबसे अच्छा तरीका है सर्वर पर और सफल होने पर AJAX कॉल करना एसएस उस मोड में डेटा को वापस लाए जो आपके मॉडल

+1

यह एक टिप्पणी नहीं है इसका उत्तर है। * एक उत्तर के रूप में पोस्ट की गई टिप्पणियां हटाने के अधीन हैं। * अधिक जानकारी के लिए यह जांचें [** लिंक **] (https://meta.stackexchange.com/a/214174/339153) – vivekkupadhyay

+0

यह उत्तर नहीं देता है सवाल। एक बार आपके पास पर्याप्त [प्रतिष्ठा] (https://stackoverflow.com/help/whats-reputation) हो जाने पर आप [किसी भी पोस्ट पर टिप्पणी कर सकेंगे] (https://stackoverflow.com/help/privileges/comment); इसके बजाय, [उन उत्तरों को प्रदान करें जिन्हें पूछताछ से स्पष्टीकरण की आवश्यकता नहीं है] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-कर-बजाय)। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/17266302) – vivekkupadhyay

संबंधित मुद्दे