我想用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'