我正在使用asp mvc 3开发一个在线商店,我正在使用Razor视图 . 我是MVC的新手,我有一个关于过滤产品的问题 .
我的方法是:
-
定义public PartialViewResult Filter()并将其包含在_Layout.cshtml中以在所有页面上呈现
-
当用户提交过滤器表单时,向他显示符合规则的产品 . 对于这个我啊另一个动作公共ActionResult FilterResult(FilterModel模型)
问题:
-
这种方法的问题是表单发帖,用户无法复制过滤网址以通过电子邮件发送 . 我想在网址中有参数 . 这可能使用mvc 3吗?或者我应该使用javascript来进行过滤器重定向?
-
您是否了解过滤产品问题的更好,更优雅的方法?
2 回答
只需对表单使用GET方法,您将在URL中使用过滤器参数 .
Example:
有可能使用BeginForm帮助器:FormExtensions.BeginForm方法(HtmlHelper,String,String,FormMethod),用于提交到同一页面,它是:
您可以将表单方法更改为GET而不是POST . 我不确定您是否可以使用Html.BeginForm()帮助程序执行此操作,您可能需要不使用帮助程序或为其编写扩展名 . 这应该至少解决你的第一个问题 . 除非你有一些其他的路由规则 .