1

我的网址是这样的,

localhost:19876/PatientVisitDetail/Create?PatientId=1

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

我试过,

    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'

编辑:

根据下面杰森的评论,我试过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所以,在这种情况下,我必须通过。

4

2 回答 2

7

您在这里有效地规避了 MVC 的全部要点。有一个接受的动作,PatientId

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

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

@model int

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

这是MVC方式。

于 2013-10-17T10:49:02.877 回答
2

从您的控制器中,您可以放入PatientIdaViewBag并从您的视图中访问它

public ActionResult Create()
{

    ViewBag.PatientId = 1;
    return View();
}

看法

Html.ActionLink("Back", "Index", new { PatiendId = ViewBag.PatientId })
于 2013-10-17T10:47:26.297 回答