De la “Id” de la valeur de l'URL dans MVC 4
Mon URL est quelque chose comme,
localhost:19876/PatientVisitDetail/Create?PatientId=1
Je dois récupérer le PatientId
à partir de l'URL et de le passer à la demande.
J'ai essayé,
Url.RequestContext.Values["PatientId"] => System.Web.Routing.RequestContext does not contain a definition for 'Values' and
no extension method 'Values' accepting a first argument of type 'System.Web.Routing.RequestContext'
De nouveau, j'ai essayé,
RouteData.Values["PatientId"] => an object reference is required for the non static field, method
or property 'System.Web.Routing.RouteData.Values.get'
EDIT:
Basé sur le Jason de commentaire ci-dessous, j'ai essayé Request["SomeParameter"]
et cela a fonctionné. Mais, il est aussi un avertissement à l'éviter.
Toutes les idées comment l'éviter pour mon scénario ?
Mon scénario:
Il y a un Create
méthode d'action dans mon contrôleur pour la création d'un nouveau patient.
Mais, j'ai besoin de revenir à la dernière page,
Si je donne quelque chose comme,
@Html.ActionLink("Back to List", "Index")
=> this wont work because my controller action method has the following signature,
public ActionResult Index(int patientId = 0)
Donc, je doit passer le long de la patientId
dans ce cas.
- Depuis
PatientId
est un paramètre querystring, jetez un oeil à ceci : stackoverflow.com/questions/2888105/... - Merci pour le lien. Il a travaillé. Mais, je vois aussi un avertissement, que
do not access the url parameters in the view?
. Dans mon scénario, comment faire pour éviter cela ?
Vous devez vous connecter pour publier un commentaire.
Vous sont effectivement de contourner le point de l'ensemble de la MVC ici. Ont une action qui accepte
PatientId
c'est à direAlors, à votre avis, utiliser cette valeur, par exemple
C'est le MVC façon.
À partir de votre contrôleur, vous pouvez mettre la
PatientId
dans unViewBag
et y accéder à partir de votre point de VueVue