Etes-vous sûr que vous ne voulez pas ActionLink? Action() ne peut pas avoir d'attributs Html appliqués car il restitue votre action et renvoie une représentation de chaîne. En outre, vous mélangez des valeurs de route et des attributs HTML dans votre code. Je pense que ci-dessous est ce que vous cherchez. Il rend un lien vers une action:
@Html.ActionLink("ProductEmailAFriendButton", "Catalog", new { productId = Model.Id }, new { @class="test" })
Si Html.Action est ce que vous aviez l'intention (vous voulez rendre physiquement l'action à une chaîne) et que vous souhaitez appliquer une classe CSS pour le conteneur parent de la vue rendue alors vous pourriez faire quelque chose de semblable à ci-dessous:
<div class="test">@Html.Action("ProductEmailAFriendButton", "Catalog", new { productId = Model.Id })</div>
'@ Html.Action' rend une action enfant pas un lien hypertexte. Vous devez utiliser '@ Html.ActionLink' pour générer un lien hypertexte – Eranga