我的网址是这样的,

localhost:19876/PatientVisitDetail/Create?PatientId=1

我必须从URL中检索PatientId并将其传递给请求。

我试过了,

    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'


我再次尝试,

RouteData.Values["PatientId"]  => an object reference is required for the non static field, method
or property 'System.Web.Routing.RouteData.Values.get'


编辑:

根据以下Jason的评论,我尝试了Request["SomeParameter"]并成功了。但是,也有警告要避免这种情况。

有什么想法如何避免这种情况吗?

我的情况:

我的控制器中有一个Create操作方法,用于创建新患者。

但是,我需要返回上一页,

如果我给类似的东西,

 @Html.ActionLink("Back to List", "Index")


=> this wont work because my controller action method has the following signature,

public ActionResult Index(int patientId = 0)


因此,在这种情况下,我必须通过patientId

最佳答案

您实际上是在规避MVC的全部要点。采取接受PatientId的措施,即

public ActionResult Create(int patientId)
{
    return View(patientId);
}


然后在您看来使用该值,例如

@model int

@Html.ActionLink("Back", "LastAction", "LastController", new { patientId = @Model })


这是MVC方式。

09-25 16:01