2015-05-21 61 views
3

我有一個動態的URL處理器如何在動作中綁定模型?

public ActionResult DynamicUrl(string slug = null) 

這種方法可行通過蛞蝓(順便說一句,這是什麼蛞蝓立場?),並從工作如果金屬塊顯示產品或進行產品的搜索。

作爲產品搜索的一部分,我有一個page = 1 querystring參數。

E.g. /Womens/Dresses?page=2 

通常我會在正常產品搜索操作中將此頁面查詢字符串綁定到ProductSearch模型。

public ActionResult Results(ProductSearchModel searchModel) 

如何在操作過程中綁定querstring?例如

public ActionResult DynamicUrl(string slug = null) 
{ 
    ProductSearchModel psm = new ProductSearchModel(); 

    //Auto bind psm here. 
    // E.g. Controller.BindModel(psm); 
} 

希望我不會偏離這個過程。

+2

一個slu is是一個通常附加到url結尾的url的人類可讀,友好的部分。如果在地址欄中輸入「http:// stackoverflow.com/questions/30386176」,請注意當頁面結束時,它如何在行動期間附加「/ how-to-bind-model-an-action」被渲染 –

+0

http://stackoverflow.com/questions/6055415/adding-id-and-title-to-url-slugs-in-asp-net-mvc 這是你在找什麼? – Medo

+0

如果你有一個查詢字符串'?page = 2',那麼這個方法應該有一個匹配的參數 - public ActionResult DynamicUrl(string slug,int page)'(因爲'string',不需要'string slug = null'一個引用類型) –

回答

2

你的意思是:

UpdateModel(psm); 

這將在目前的形式收集綁定到指定的型號。

您還可以使用:如果事情失敗,並返回truefalse

TryUpdateModel(psm); 

此版本將不會拋出異常。