2014-12-04 29 views
0

比方說,我有一個動作方法是這樣的:ASP.NET MVC的通行動作參數視圖

public ActionResult Page(int? id) 
{ 
} 

的問題是,我怎麼能讀查看「ID」參數?

+1

您是否嘗試過的東西?一般把它放在ViewBag中就足夠了... – Tallmaris 2014-12-04 10:26:28

+1

你不讀取視圖中的參數,你把參數從視圖傳遞給控制器​​。如果您需要將參數的值傳遞迴視圖,請將其設置在您的模型或ViewBag中。 – 2014-12-04 10:28:13

+0

@Tallmaris:我想知道是否有可能將信息與傳遞模型合併,但ViewBag似乎沒問題。謝謝! – 2014-12-04 10:28:32

回答

0

您的代碼將無法成功建立,直到返回這樣

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

一個視圖,因爲要返回的ID以你的觀點,你可以做 簡單對象

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

只需記住在您的視圖中接受新值,通過在頂部(非常第一行)輸入以下內容

@model int? 

視圖模型方法

public class MyViewModel 
{ 
    public int? Id { get; set; } 

    //Other properties here 
} 

public ActionResult Page(int? id) 
{ 
    var myViewModel = new MyViewModel() 
    { 
     Id = id 
    }; 
    return View(myViewModel); 
} 

,然後在您的視圖

@model MyViewModel 
+0

雖然這將工作,但不知何故,我不認爲基於模型是一個可爲空的int的視圖是有用的。 – 2014-12-04 10:29:02

+1

@BenRobinson我完全同意你的看法。但他問如何讓id到視圖,這是有效和正確的解決方案。當然,我們可以使用視圖包,但我個人討厭使用視圖包並認爲它很混亂。 – Johan 2014-12-04 10:31:26

+0

@Johan:其實我的問題並不完整。事實上,我將View作爲參數返回給模型。 – 2014-12-04 10:34:19

0

您可以請求針對訪問參數如下

Request.Params["id"]