2010-03-22 65 views
2

這更多的是爲了滿足我的好奇心和我真正需要回答的問題。回到ASP.NET WebForms,我偶爾會在查詢字符串中使用位置參數,如果我只需要將一件事傳遞給頁面。例如:查詢字符串中的MVC和位置參數

http://localhost/site/MyPage.aspx?ABCD1234

然後我的代碼是這樣的:

string accountNumber = ""; 
if (Request.QueryString.Count > 0) 
    accountNumber = Request.QueryString[0]; 

在MVC中,你可以通過一個位置的查詢字符串參數的控制方法,而不是通過的Request.QueryString訪問它的?

回答

0

只要您的控制器參數是一個字符串,那麼您可以通過甚至不命名參數並將其附加到URI來調用它。

http://mydomain.com/controller/action/SingleStringParameterValue

如果你想使用它作爲查詢字符串參數,那麼你必須對控制和查詢字符串變量我相信匹配的名字。

+0

我知道我能做到這一點作爲URL的一部分,只是好奇,如果它可以作爲一部分來完成的查詢字符串。 – 2010-03-22 20:58:38

0

你也可以用MVC做同樣的事情。您只需確保沒有將url與查詢字符串關聯到不同的操作方法的路由。

這個工程從ASP.NET MVC創建默認的項目,當你新建立一個項目:

public ActionResult Index() { 

     if (Request.QueryString.Count > 0) 
      ViewData["Message"] = "Welcome to ASP.NET MVC: " + Request.QueryString[0]; 
     else 
      ViewData["Message"] = "Welcome to ASP.NET MVC"; 

     return View(); 
    } 
+1

是的,但這不完全是他從我的理解中所要求的。他想知道是否有可能在查詢字符串的第一個位置使用變量名作爲傳遞給控制器​​操作的參數,答案可能不是。 – 2010-03-22 21:06:39

+0

你對尼克拉森。我改變了我的回答來反映這個問題。 – 2010-03-23 13:34:13