asp.net-mvc
  • razor
  • asp.net-mvc-5
  • 2014-07-06 77 views 0 likes 
    0

    我期望在Razor @ ViewContext.RouteData.Values [「id」]返回一個整數,雖然它返回'Id=X'爲什麼ViewContext.RouteData.Values [「X」]返回鍵vlaue?雖然我期望只是值

    比如我的控制器,如:

    public ActionResult Index(int? id) 
    { 
        return View(); 
    } 
    

    而且在剃刀:

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

    結果與'Id=X'

    +0

    它返回'Id = X',其中X是你的'int'值? – whoah

    +0

    是的,我期望文本框顯示X – Mostafa

    回答

    2

    我希望在剃刀的價值一個文本框@ ViewContext.RouteData.Values [「id」]返回一個 整數,雖然它返回Id = X。

    返回Id=X通過RouteData.Values["id"]是正確的行爲,根據MSDN

    如果你想獲得該對象的值,你可以使用:

    @ViewContext.RouteData.Values["id"].ToString() 
    

    所以,你的輸入應該是這樣:

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

    如果這也將無法正常工作,你能做到這一點竅門:

    public ActionResult Index(int? id) 
    { 
        if(id.HasValue) 
         TempData["id"] = id; 
        else 
         TempData["id"] = "empty value"; 
    
        return View(); 
    } 
    

    然後:

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

    謝謝,不幸的是沒有任何事發生RouteData.Values [「id」]。ToString()返回'Id = X' – Mostafa

    +0

    @Mostafa,好的,現在看看編輯。 – whoah

    +0

    現在我什麼也沒得到,@ViewData [「id」]什麼也沒有顯示 – Mostafa

    相關問題