我是Stack Overflow和ASP.NET MVC的新手。
我被要求做一个我想要使用ASP.NET MVC的项目,但是我有一些问题包围着它,我希望你们中的一些能让我朝着正确的方向前进。
该项目是一种搜索门户。在每个页面上都有一个下拉框,您可以在其中基本选择要搜索的数据集(基于书籍)。在下拉列表中是您要搜索的图书的名称。
当然还有一个搜索字段。这两个对象在每个页面上,并且在所有页面上具有相同的功能,我无法让这两个对象进行通信。
我在单独的偏见视图中有这两个,并希望为搜索表单字段生成一个这样的动作:
domain.com/{bookname}/search/{searchterm}
:这是从下拉列表和搜索框创建的内容。
但我能否以某种方式在searchfields partialview中执行此操作,或者我是否必须在每个控制器中获取这些值?
我希望这是有道理的。
答案 0 :(得分:0)
我已经使用ASP.NET MVC在我的一个项目上实现了类似的搜索要求。但是,我在单个部分视图中进行了下拉和搜索。
然后,我使用Javascript来获取所选值,并将用户重定向到带有域domain.com/{criteria}/search/{searchWord}的URL。
这种方式我不得不使用单个控制器进行搜索,只需一个视图即可查看搜索结果。
答案 1 :(得分:0)
使用您的下拉列表和文本框创建一个局部视图,使用BeginForm帮助程序:
<% using(Html.BeginForm("Index", "Search")) %>
<% { %>
<%= Html.DropDownList("BookNames") %>
<%= Html.TextBox("SearchTerm") %>
<% } %>
然后在SearchController的Index操作中,您应该能够从表单集合中获取值或使用下拉列表和文本框的id。
public ActionResult Index(FormCollection frmCollection)
{
// ...
// also you can redirect to another action/controller if you needed
// return RedirectToAction("...", "...");
}
或
public ActionResult Index(int bookNames, string searchTerm)
{
// ...
// also you can redirect to another action/controller if you needed
// return RedirectToAction("...", "...");
}
希望这有帮助。