我的网址就像,
localhost:19876/PatientVisitDetail/Create?PatientId=1
我必须从网址中检索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
。
答案 0 :(得分:7)
你在这里有效地规避了MVC的重点。有一个接受PatientId
即
public ActionResult Create(int patientId)
{
return View(patientId);
}
然后在您的视图中使用该值,例如
@model int
@Html.ActionLink("Back", "LastAction", "LastController", new { patientId = @Model })
这是MVC方式。
答案 1 :(得分:2)
在您的控制器中,您可以将PatientId
放入ViewBag
并从您的视图中访问
public ActionResult Create()
{
ViewBag.PatientId = 1;
return View();
}
查看强>
Html.ActionLink("Back", "Index", new { PatiendId = ViewBag.PatientId })