如何从URL(ASP.NET MVC)中获取View中的当前路由ID

在从/ Controller / Action / 1(假设controller / action / id的默认路由)返回的视图中,如何从View中访问ID?

在处理请求时,我不希望将其添加到操作级别的ViewData字典中。

我想这是你要找的东西:

<%=Url.RequestContext.RouteData.Values["id"]%> 

ViewData正是这样做的正确方法。

您的其他选项是将包含ID的模型传递给视图。

编辑:不知道你要绑定什么,很难给出更具体的build议。 为什么你需要一个ID,但没有任何其他模型数据? 你的控制器真的只发送Id字段到视图? 很难想象这是什么情景。

如果ID值是真正传递给视图的唯一模型信息,则可以使用ID本身作为模型。 那么你的action方法的返回值就是View(id) ,你不需要使用ViewData。

把它添加到viewdata是正确的事情。 至于如何添加它,你总是可以添加一个自定义的ActionFilter ,它从路由字典中抓取它,并将其推入到viewdata中。

我们可以通过Route DataQueryString ,以支持他们两个我推荐这种方式:

 var routeValues=Url.RequestContext.RouteData.Values; var paramName = "id"; var id = routeValues.ContainsKey(paramName)? routeValues[paramName]: Request.QueryString[paramName]; 

我认为你可以直接在url中使用Url.RequestContext.RouteData.Values [“id”]

我只是使用<%= model.id %> ,它的工作原理