2016-12-05 1 views
1

J'ai deux contrôleurs: Transaction et CheckingAccountHtml.ActionLink envoyer paramètre Id à un autre contrôleur

Mon Index vue de Vérification compte, je me suis suivantes:

<td> 
     @Html.ActionLink("Edit", "Edit", new { id=item.Id }) | 
     @Html.ActionLink("Details", "Details", new { id=item.Id }) | 
     @Html.ActionLink("Deposit", "Deposit", "Transaction",new {id = item.Id) | 
     @Html.ActionLink("Withdraw", "Withdraw", "Transaction", new { id = item.Id }) | 
     @Html.ActionLink("Delete", "Delete", new { id=item.Id }) 
    </td> 

Modifier , Détails et Supprimer les liens fonctionnent comme il est censé être, ce qui signifie qu'ils envoient Id lien au contrôleur CheckingAccount.

Pour les liens de dépôt et de retrait, je souhaite les diriger vers le contrôleur Transaction avec le même ID. Cependant, il redirige vers le contrôleur CheckingAccount à nouveau.

Comment pourrais-je résoudre ce problème?

Répondre

1

Vous devez changer pour:

<td> 
     @Html.ActionLink("Edit", "Edit", new { id=item.Id }) | 
     @Html.ActionLink("Details", "Details", new { id=item.Id }) | 
     @Html.ActionLink("Deposit", "Deposit", "Transaction",new {id = item.Id }, null) | 
     @Html.ActionLink("Withdraw", "Withdraw", "Transaction", new { id = item.Id }, null) | 
     @Html.ActionLink("Delete", "Delete", new { id=item.Id }) 
    </td> 

Notez le dernier paramètre null. ActionLink helper ont un peu de problèmes avec beaucoup de surcharges, donc sans null vous utilisez essentiellement une mauvaise surcharge c'est pourquoi vous n'obtenez pas le lien dont vous avez besoin.

Voici un full answer:

Voici ce que vous utilisez:

@Html.ActionLink(
    "Reply",             // linkText 
    "BlogReplyCommentAdd",         // actionName 
    "Blog",             // routeValues 
    new {              // htmlAttributes 
     blogPostId = blogPostId, 
     replyblogPostmodel = Model, 
     captchaValid = Model.AddNewComment.DisplayCaptcha 
    } 
) 

et voici ce que vous devez utiliser:

@Html.ActionLink(
    "Reply",             // linkText 
    "BlogReplyCommentAdd",         // actionName 
    "Blog",             // controllerName 
    new {              // routeValues 
     blogPostId = blogPostId, 
     replyblogPostmodel = Model, 
     captchaValid = Model.AddNewComment.DisplayCaptcha 
    }, 
    null              // htmlAttributes 
) 
+0

Merci. Cela a fonctionné mais pourquoi devons-nous ajouter null à la fin? – Landowner

+0

Mauvaise surcharge utilisée wilthot null –

+0

Désolé. Je ne pouvais pas comprendre ça. Pourriez-vous élaborer un peu plus? – Landowner

1

Vous pouvez envoyer le paramètre Id à un autre contrôleur en utilisant le code suivant:

@Html.ActionLink("Delete Data", "ActionName", "ControllerName", new { id = item.Id, },null)