40

是否有替代方法可以在视图页面中获取路由值,而不是像 querystring 那样读取它?

@Html.ActionLink("Language Resources", "Index", "LanguageResource", 
                 new { languageCode = Request.QueryString["languageCode"] , "")
4

4 回答 4

104

尝试从下面的代码中找到

在剃刀

@{
    var id = ViewContext.RouteData.Values["id"];
 }

在 Web 表单中:

<% 
    var id = ViewContext.RouteData.Values["id"];
%>
于 2013-07-17T12:08:19.300 回答
25

您可以使用 RequestContext

@{
var id = HttpContext.Current.Request.RequestContext.RouteData.Values["id"];
}
于 2013-07-17T12:02:38.663 回答
11

不排除保持简单:

public ActionResult Action(int id)
{
    return View( id);
}

指出我们正在处理的模型的类型

@model int 

并通过以下方式以强类型方式引用该值:

@Model
于 2016-01-23T22:33:05.317 回答
8

对于经验较少的人,您也可以访问控制器和 URL 的操作部分。(剃刀示例)

if(ViewContext.RouteData.Values["action"].ToString() == "Account")
{
    @Html.Raw("Hi ") @Session["UserName"]
}

在哪里,

context.MapRoute(
            name: "MyRoute",
            url: "{controller}/{action}/{id}"
}
于 2016-06-28T18:28:28.283 回答