Asp.net mvc 为什么ViewContext.RouteData.Values[“X”返回键值?而我期望的只是价值

Asp.net mvc 为什么ViewContext.RouteData.Values[“X”返回键值?而我期望的只是价值,asp.net-mvc,razor,asp.net-mvc-5,Asp.net Mvc,Razor,Asp.net Mvc 5,我希望@ViewContext.RouteData.Values[“id”]返回一个整数,而它返回'id=X' 例如,我的控制器如下所示: public ActionResult Index(int? id) { return View(); } 在Razor中: <input type="text" value='@ViewContext.RouteData.Values["id"]' id="routeDataId" /> 结果是一个文本框,其值为'Id=X

我希望@ViewContext.RouteData.Values[“id”]返回一个整数,而它返回
'id=X'

例如,我的控制器如下所示:

public ActionResult Index(int? id)
 {
     return View();
 }
在Razor中:

<input type="text" value='@ViewContext.RouteData.Values["id"]' id="routeDataId" />

结果是一个文本框,其值为
'Id=X'

我希望@ViewContext.RouteData.Values[“id”]返回一个 整数,而它返回Id=X

根据,通过路由数据返回
Id=X
。值[“Id”]是正确的行为

如果要获取该对象的值,可以使用:

@ViewContext.RouteData.Values["id"].ToString()
因此,您的输入应该如下所示:

<input type="text" value='@ViewContext.RouteData.Values["id"].ToString()' id="routeDataId" />
然后:

<input type="text" value='@TempData["id"]' id="routeDataId" />

您应该将引号从
更改为
,如下所示:

<input type="text" value="@ViewContext.RouteData.Values["id"].ToString()" id="routeDataId" />


它返回
Id=X
,其中X是您的
int
值?是的,我希望文本框显示XThanks,不幸的是没有发生任何错误。值[“Id”]。ToString()也返回'Id=X'
<input type="text" value="@ViewContext.RouteData.Values["id"].ToString()" id="routeDataId" />