我想用BegingForm與Get方法,這是我做的查詢字符串從BeginForm在MVC 3
@using (Html.BeginForm("Search","Home",FormMethod.Get))
{
//My input elements
}
public class HomeController : Controller
{
public ActionResult Search(string queryString)
{
}
}
但查詢字符串總是回來爲空。我想,我需要做一些事情的路線,但沒有運氣
routes.MapRoute(
"SearchRoute", // Route name
"Home/Search{queryString}", // URL with parameters
new { controller = "Home", action = "Search", filter = UrlParameter.Optional } // Parameter defaults
);
顯然,即將到來的URL到服務器是一樣的東西
主頁/搜索?查詢=「嗒嗒」 & QUERY2 =「嗒嗒」 & query3 =「blah」
我在做什麼錯?當我想用beginform使用get時,在控制器中獲取查詢參數的正確方法是什麼?
此外,如果我的BeginForm的內容可以更改,並且查詢字符串參數名稱可能因呈現的頁面而異,但我希望有一個Search方法可以分析查詢字符串並執行正確的操作?
此外,是他們的方式來查詢參數來進入一個字典?
你是說mvc框架可以自動將我的查詢字符串反序列化爲SearchViewModel嗎?我是否需要裝飾SearchViewModel來實現這一點?你能否請我介紹一下如何將查詢字符串映射到SearchViewModel的文檔? – iCode
@Mike Dotnet,是的,這就是默認的模型綁定器所做的。你不必裝飾任何東西。您只需確保此模型中的屬性名稱與您的HTML'