2012-07-02 30 views
29

¿Es posible?usando la variable javascript en el motor MVC3 Razor view

@Html.ActionLink("Link text", "Action Name", new { id = *JAVASCRIPT VARIABLE* }) 

Por favor, explique con el código de ejemplo.

+0

No, no es posible. ¿Qué estás tratando de hacer exactamente? –

+1

En realidad necesito pasar un parámetro que obtengo de javascript. ¿Cómo puedo resolver mi problema? –

Respuesta

15

No, no es posible, porque .NET MVC 3 es el código del lado del servidor y se evalúa antes de ser enviada al cliente, y javascript es el código del lado del cliente, que se ejecuta sólo una vez que está en el cliente

pero el inverso es posible:

var jsVar = "@yourMvcVar"; 
+5

es posible con algunas soluciones alternativas .. ver mi respuesta – krilovich

73

en realidad, es muy posible con lo siguiente:

var hello = "Great Job!"; 

var text = "@Html.ActionLink("Link text", "Action Name", new { id = "JSVar" })" 
text = text.replace("JSVar",hello); 

¡Tan fácil como eso! :)

Todo el enlace @ Html.Action hace es crear una cadena URL al hacerlo reemplazar en él es lo mismo que sustituir en cualquier cadena de javascript

+5

¡Buena solución! Solo asegúrese de que el código de reemplazo sea robusto, tal vez adopte una cadena. Enfoque de tipo de formato: 'var text =" @ Html.ActionLink ("Texto de enlace", "Nombre de la acción", nuevo {id = "{0}"}) ";" no estoy seguro si el {0} funcionará en ese asistente, pero entiendes –

+4

Aceptaría esta respuesta en lugar de la aceptada ahora. –

Cuestiones relacionadas