2009-07-16 4 views
5

J'ai du mal à faire quelque chose qui est probablement assez simple!Méthodes d'action ambiguës - ASP.net MVC

J'ai une liste de stock qui est fait par 1) un formulaire simple avec des paramètres (\ Index) et 2) une vue partielle appelée ajax qui affiche la liste de stock (sur la base des paramètres).

Sur ce même formulaire simple (\ Index), j'ai un lien d'action vers une méthode "Add Stock" qui appelle un autre formulaire pour ajouter du stock.
Lorsque l'utilisateur a fini d'ajouter le stock, je le redirige vers la page de la liste de stock (\ Index). Mon problème est que je voudrais "se souvenir" des paramètres qui ont été initialement saisis dans ce formulaire afin que l'utilisateur ne soit pas simplement renvoyé à une page avec des paramètres vierges les forçant à les entrer à nouveau.

Je pensais que je pouvais simplement surcharger la méthode d'index en tant que tel:

Function Index() As ActionResult 

    Return View(New Stock_ViewModel) 

End Function 

Function Index(ByVal svm As Stock_ViewModel) As ActionResult 

    Return View(svm) 

End Function 

Je reçois cette erreur: The current request for action 'Index' on controller type 'StockController' is ambiguous between the following action methods:...

Maintenant, j'ai lu this post et de réponse, mais je ne peux pas comprendre comment mettre en œuvre la Solution.

Cette solution est-elle applicable dans ma situation? Y a-t-il une meilleure façon d'accomplir ce que j'essaie de faire?

Merci d'avance pour toute aide!

Répondre

0

Il semble sa question était plus compliquée que le vôtre. Plutôt que la classe RequiredRouteValues ​​qu'il a créée, vous devriez pouvoir utiliser l'attribut RequiredRequestValue utilisé par Levi.

Vous devrez vous convertir à vb.net vous-même, mais respectez la réponse de Levi, et non la modification d'itinéraire.

James

+0

Vous devrez cependant créer vous-même l'attribtue, comme si vous utilisiez RequireRouteValues. La source est incluse dans la réponse de Levi (en C#). –

+0

Merci pour votre temps James, j'ai implémenté le RequiredRequestValue plus simple selon la publication de Levi. – wheelibin

3

Vous devez décorer vos méthodes comme ceci:

Function Index() As ActionResult 
    Return View(New Stock_ViewModel) 
End Function 

<RequireRouteValues("svm")> _ 
Function Index(ByVal svm As Stock_ViewModel) As ActionResult 
    Return View(svm) 
End Function 
+0

Yeh, c'est ce qu'il dit dans l'autre poste ..... si je fais ce qu'il ne sait pas ce que est - « type RequireRouteValues ​​ne définit pas » .... ce Ai-je disparu? – wheelibin

+0

C'est un attribut personnalisé (le code est dans la question à laquelle vous avez lié) – NikolaiDante

Questions connexes