2014-02-13 46 views
4

我有這樣的如何挑選查詢字符串在ASP.Net MVC4剃刀

http://localhost:1243/home/index/?skip_api_login=1&api_key=145044622175352&signed_next=1 

一個URL現在home是我的控制器index是我的行動。

但請告訴我,我怎麼能在asp.net中MVC4剃鬚刀skip_api_loginapi_keysigned_next 值。

我想在控制器和視圖中使用這些值。請告訴我如何挑選它們。

回答

6

你可以有你的控制器動作把它們作爲參數和模型綁定將其值設置形成的查詢字符串:

public ActionResult Index(string skip_api_login , string api_key, int signed_next) 
{ 
    ... 
} 

或事件更好,寫一個視圖模型:

public class MyViewModel 
{ 
    public string Skip_api_login { get; set; } 
    public string Api_key { get; set; } 
    public int Signed_next { get; set; } 
} 

您的索引操作將作爲參數:

public ActionResult Index(MyViewModel model) 
{ 
    ... 
    return View(model); 
} 

然後您的視圖可能會強類型的這種觀點模型,你就可以訪問這些值:

@model MyViewModel 
... 
@Html.DisplayFor(x => x.Skip_api_login) 
@Html.DisplayFor(x => x.Api_key) 
@Html.DisplayFor(x => x.Signed_next) 

當然,你總是可以從Request對象訪問查詢字符串參數組成:

@Request["skip_api_login"] 

但你可能不想在你看來做這樣的事情。請記住,視圖應該只與控制器操作以視圖模型的形式提供的值一起工作。視圖不應該從請求,會話,viewdatas,視圖包,數據庫以及任何想到的內容中獲取值。 ASP.NET MVC中的視圖有一個單獨的職責:使用視圖模型中的信息。

+0

bot如果其中一個在url中不可用,會發生什麼情況。也是我需要在RouteConfig文件中註冊這些密鑰 –

+0

當我看到最後一部分時,我的眼睛流血了一點:) –

+1

@SimonWhitehead爲什麼? –