如何在视图中获取路由值(Asp.net Mvc)

Dan*_*zra 36 asp.net-mvc asp.net-mvc-4

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

@Html.ActionLink("Language Resources", "Index", "LanguageResource", 
                 new { languageCode = Request.QueryString["languageCode"] , "")
Run Code Online (Sandbox Code Playgroud)

Ami*_*mit 93

试着从下面的代码中找到

在剃刀

@{
    var id = ViewContext.RouteData.Values["id"];
 }
Run Code Online (Sandbox Code Playgroud)

在WebForms中:

<% 
    var id = ViewContext.RouteData.Values["id"];
%>
Run Code Online (Sandbox Code Playgroud)


max*_*s87 19

您可以使用RequestContext

@{
var id = HttpContext.Current.Request.RequestContext.RouteData.Values["id"];
}
Run Code Online (Sandbox Code Playgroud)


Rub*_*ink 10

不要排除保持简单:

public ActionResult Action(int id)
{
    return View( id);
}
Run Code Online (Sandbox Code Playgroud)

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

@model int 
Run Code Online (Sandbox Code Playgroud)

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

@Model
Run Code Online (Sandbox Code Playgroud)


use*_*549 7

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

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

哪里,

context.MapRoute(
            name: "MyRoute",
            url: "{controller}/{action}/{id}"
}
Run Code Online (Sandbox Code Playgroud)