如何从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 Data
或QueryString
,以支持他们两个我推荐这种方式:
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 %>
,它的工作原理