2010-04-19 4 views
0

Je veux savoir s'il existe un moyen de faire quelque chose comme des formulaires Web .. Ou une façon agréable de le faire .. J'ai un ActionLink ("foo", "fooAction") sur ma vue "Index". Dans cette fooAction, j'appelle une méthode qui retourne "True" ou "False" et en fonction du retour, je dois donner à l'utilisateur, des retours et retourner l'index avec les mêmes résultats + les retours.Problème avec ActionLink

Dans les formulaires Web, il suffit de définir "label.visible = true; | label.text = 'bla'" ou w/e sur la méthode.

Suis-je clair? Merci!

Edit:

Certains pseudocode je ferais en utilisant webforms pour mieux expliquer:

<asp:button OnCommand="method1"> 
    - Method1(){ 
    var response = ws.MethodFromWebService(); //call a method from the Web Service and get the return(true/false) 
    if (response) 
     feedbackLabel.Text = "worked"; 
    else 
     feedbackLabel.Text = "didn't work"; 
    feedbackLabel.Visible = true; 
    } 

Je voudrais le faire sans javascript.

+0

Un peu confus. donc vous voulez passer un vrai ou faux à votre action de contrôleur? –

+0

Oui, sans changer le résultat sur la vue .. – Daniel

Répondre

1

Vous ne pouvez pas action juste retourner le texte "travaillé" ou "ne fonctionne pas"?

Vous pouvez faire comme

$.get("Foo/FooAction", function(html){ 
    $("#feedbackLabel").show().html(html); 

}); 

Modifier

Sur votre action

public ContentResult FooAction(){ 
    if(SomeThing()) 
     return "worked"; 
    else 
     return "didnt worked"; 
} 
+0

Désolé, j'ai oublié de mentionner que je ne peux pas utiliser javascript comme ça. – Daniel

+0

@Daniel pourquoi pas? Est-ce une limitation technique? – mxmissile

0

Son fait habituellement par la poste - Rediriger -Get.

Vous publiez dans une action qui modifie certaines données. Cette propriété dataobjects est définie sur yes ou false.

Vous redirigez ensuite vers une action qui affiche les données (index).

Si oui/non est plus de savoir si une action est suucteded ou non, alors vous mettriez généralement le résultat dans tempdata avant de rediriger vers l'index.

0

Vous pouvez appeler l'action via une requête jQuery $ .ajax. Une fois que vous avez lancé ceci, vous pouvez renvoyer un résultat JSON avec le retour et le charger dans le dom en utilisant jQuery. Pour un exemple de quelque chose de similaire click here.

J'espère que ça aide, laissez-moi savoir si cela doit être étendu sur :-)

Questions connexes