Je soupçonnais qu'il y avait de la magie cachée quelque part qui arrêtait ce qui ressemble à des appels de méthode réels partout dans T4MVC. Puis j'ai eu une vue échouer à compiler, et le stackTrace est entré dans ma méthode actuelle.T4MVC ne générant pas d'action
[Authorize]
public string Apply(string shortName)
{
if (shortName.IsNullOrEmpty())
return "Failed alliance name was not transmitted";
if (Request.IsAuthenticated == false || User == null || User.Identity == null)
return "Apply authentication failed";
Models.Persistence.AlliancePersistance.Apply(User.Identity.Name, shortName);
return "Applied";
}
Cette méthode n'est donc pas générée dans le modèle après tout.
<%=Ajax.ActionLink("Apply", "Apply", new RouteValueDictionary() { { "shortName", item.Shortname } }, new AjaxOptions() { UpdateTargetId = "masterstatus" })%>
<%=Html.ActionLink("Apply",MVC.Alliance.Apply(item.Shortname),new AjaxOptions() { UpdateTargetId = "masterstatus" }) %>
La deuxième méthode a jeté une exception sur la compilation parce que la méthode Apply
dans mon contrôleur a un attribut [Authorize]
de sorte que si quelqu'un qui ne soit pas connecté sur les clics, ils sont redirigés pour se connecter, puis de retour à ce page. Là, ils peuvent cliquer sur appliquer à nouveau, cette fois étant connecté.
Et oui, je réalise un est Ajax.ActionLink
tandis que l'autre est Html.ActionLink
Je les ai essayé tous les deux avec la version T4MVC.
Je reçois les avertissements suivants lorsque j'exécute un outil personnalisé sur le modèle: Avertissement \t Transformation de compilation: En supposant que la référence d'assemblage 'EnvDTE, Version = 7.0.3300.0, Culture = neutre, PublicKeyToken = b03f5f7f11d50a3a' correspond à 'EnvDTE, Version = 8.0. 0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a ', 'vous devrez peut-être fournir une politique d'exécution. Warning' \t Transformation de compilation: 'Code inaccessible détecté \t T4MVC.tt ligne 788'. et la méthode apply n'est pas générée. Mise à jour de la question avec les autres informations de code/d'exception. – Maslow
C'est juste un avertissement bénin qui n'est pas lié à votre problème. –