El comportamiento predeterminado de los helpers de Ajax no va a apoyar esto. Sin embargo, puede crear un controlador JavaScript personalizado que se ejecute cuando la solicitud Ajax regrese y luego usarlo para inyectar el valor en el atributo
Cree un archivo JavaScript común (cárguelo en la página Maestra, por ejemplo) y añadir esta función:
// 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;
}
}
Entonces, cuando la construcción de su enlace Ajax:
Ajax.ActionLink("Change IMG Source", "actionChange", new AjaxOptions() {
UpdateTargetId="CHANGE-MY-SRC",
OnCompleted="createAttributeInjector('src')"
}
Negación: no he podido dar a esto una prueba, pero he hecho cosas similares con los ayudantes de Ajax. Publicar en los comentarios de mi respuesta si tiene problemas y estoy feliz de ayudar! Si funciona, házmelo saber en los comentarios también!
Si usted tiene la fuente (you can get it on CodePlex), se puede extraer el archivo AjaxContext.cs en el proyecto MicrosoftMvcAjaxScript para obtener una lista completa de las propiedades que puede acceder desde el controlador OnCompleted
El ID de destino es de una etiqueta de imagen, y quiero cambiar el atributo src de la etiqueta como src = "new text" cuando la llamada ajax retorna con "texto nuevo". – zsharp