Le comportement par défaut pour les aides Ajax n'appuierai pas. Vous pouvez cependant créer un gestionnaire JavaScript personnalisé qui est exécuté lorsque la requête Ajax est renvoyée, puis l'utiliser pour injecter la valeur dans l'attribut.
Créer un fichier JavaScript commun (chargez-le dans la page maître, par exemple) et ajoutez cette fonction:
// Creates an Ajax OnComplete handler that will inject
///the contents into the specified attribute, rather than the InnerHtml
function createAttributeInjector(attributeName) {
return function(ajaxContext) {
if(ajaxContext.get_updateTarget() !== null) {
ajaxContext.get_updateTarget()[attributeName] = ajaxContext.get_data();
}
// IMPORTANT: Suppress the default behavior!
return false;
}
}
Puis, lors de la construction de votre lien Ajax:
Ajax.ActionLink("Change IMG Source", "actionChange", new AjaxOptions() {
UpdateTargetId="CHANGE-MY-SRC",
OnCompleted="createAttributeInjector('src')"
}
Disclaimer: Je ne l'ai pas été en mesure de donner à ce test, mais je l'ai fait des choses semblables avec les aides Ajax. Poster dans les commentaires pour ma réponse si vous avez des problèmes et je suis heureux de vous aider! Si cela fonctionne, faites le moi savoir dans les commentaires!
Si vous avez la source (you can get it on CodePlex), vous pouvez consulter le fichier AjaxContext.cs dans le projet MicrosoftMvcAjaxScript pour une liste complète des propriétés que vous pouvez accéder à partir du gestionnaire OnCompleted
L'ID cible est d'une balise d'image, et je veux changer l'attribut src de l'étiquette en tant que src = "nouveau texte" lorsque l'appel ajax revient avec "nouveau texte". – zsharp