2012-02-23 5 views
0

Je voudrais passer le paramètre de la vue au contrôleur dans la page cshtml. Ce est le code que j'ai:passer le paramètre de la vue au contrôleur rasoir

<script type="text/javascript"> 
    function Test() { 

     $.get(  
     "@Url.Action("UpdateReport/", "Report")"     
    ); 
    } 

</script> 

<h2>Reports</h2> 

@foreach (var item in Model) 
{ 
    <div>@Html.ActionLink(@item.Name, "ActionCall", "Report", new { Id = @item.Id }, null)</div><br /><br /> 
       <input type="button" class="button1" value="Insert" /> 
       <input type="button" class="button1" value="Delete" /> 
       <input type="button" onclick="Test()" class="button1" value="Update" />  
} 

Lorsque je clique sur le bouton de mise à jour, je voudrais passer le @ item.Id à l'action du contrôleur via le code JS je. Le code entre maintenant dans l'action du contrôleur, mais sans paramètres. Je veux aussi passer un paramètre. Merci à l'avance pour chaque conseil, Laziale

public ActionResult UpdateReport(string name) 
     { 
      return View("Index"); 
     } 

Répondre

0

vous pouvez utiliser $ .post

<script type="text/javascript"> 
    function Test() { 

     var itemId = $('#MyButton').attr('itemid'); 
      var url = '@Url.Action("UpdateReport", "Outcome")'; 
      var data = { Id:itemId }; 
       $.post(url, data, function (result) { 
        var id = '#postedFor' + postId; 
        $(id).html(result); 

      });     
    ); 
    } 

</script> 

et lier l'id article à votre entrée

<input id="MyButton" itemid="@Html.Raw("postedFor" + Model.Id)" type="button" onclick="Test()" class="button1" value="Update" /> 
+0

@Javanga à côté du contrôleur maintenant comment obtenir le bon Id? Merci d'avance. S'il vous plaît trouver le contrôleur dans mon message. – Laziale

+0

si le type de données de l'ID est une chaîne, le contrôle doit être public ActionResult UpdateReport (ID de la chaîne) { return View ("Index"); } – Jayanga

+0

avez-vous remarqué que le type de données et le nom de propriété doivent être les mêmes que les données que vous passez de la vue – Jayanga

1
<script type="text/javascript"> 
    function Test() { 

     $.get(  
      "@Url.Action("UpdateReport/", "Report")", 
      {Id : @item.Id}     
     ); 
    } 
</script> 

ou:

<script type="text/javascript"> 
    function Test() { 

     $.get(  
      "@Url.Action("UpdateReport/", "Report", new {Id = item.Id})" 
     ); 
    } 
</script> 
0

Ajouter un nouvel élément routevalue, nommé Id

<script type="text/javascript"> 
function Test() { 

    $.get(  
    "@Url.Action("Update", "Report", new { @id = item.Id })"     
); 
} 

0

Essayez ce code dans votre fonction javascript n:

$.get('Report/UpdateReport?paramName=paramValue', function(data) { 
    //Do something with "data" 
}); 

Lorsque paramName est le nom du paramètre dans l'action du contrôleur, la valeur est la valeur actuelle que vous voulez transmettre. Les données renvoyées par le contrôleur sont placées dans des variables "data".

1


Vue: Dans la vue "catégorie" paramètre est passé au contrôleur avec "admin" valeur

@{ Html.RenderAction("Menu", "Nav", new { category = "admin" }); } 


Contrôleur: Dans le contrôleur "catégorie" valeur du paramètre est obtenu.

public PartialViewResult Menu(string category, string menu = null) 
{ 
    IEnumerable<Menu> menus = repository.Menus 
    .Select(x => x) 
    .Where(x => (x.MenuCategory == category) 
    .OrderBy(x => x.MenuSequence).ToList(); 
    return PartialView(menus); 
} 


Questions connexes