我在Umbraco 7中使用Examine来搜索我的网站索引。它工作正常,但我想通过在我的数据库中存储搜索查询来跟踪人们搜索的内容。我已经设置了ActionResult
,它在Controller
名为SearchRecordSurfaceController的表中将术语插入到我的表中。
现在,我在Razor Partial View中有一个搜索框和按钮,如下所示:
@model MyCompany.Models.SearchModel
<form action="@Url.Action("GetSearchResults", "SearchRecord")" method="get">
<input type="text"
id="searchField"
name="SearchInput"
value=""
placeholder="site search" />
<button name="Search" type = submit
value = GetSearchResults
class="btnSubmit">Search</button>
<input type="submit"
value="Search"
class="btnSubmit"
title="Search website" />
</form>
我想将搜索框中的任何用户类型发送到我的ActionResult
&#34; GetSearchResults&#34;在我的Controller
&#34; SearchRecordSurfaceController&#34;。我知道您可以像Url.Action
一样发送参数:
@Url.Action("GetSearchResults", "SearchRecord", new {myParam = myValue})
但我不确定如何传递searchField
输入中的值。
如何从用户搜索我的ActionResult
方法中获取文字?
答案 0 :(得分:2)
您只需要在操作方法上使用与搜索输入的name
匹配的字符串参数:
public ActionResult GetSearchResults(string searchInput) { ... }
<input type="text"
id="searchField"
name="searchInput"
value=""
placeholder="site search" />
或者,或者,具有匹配属性的模型类:
public class SearchViewModel
{
public string SearchInput { get; set; }
}
public ActionResult GetSearchResults(SearchViewModel model) { ... }
答案 1 :(得分:1)
您可以使用FormCollection
类型
e.g。
public ActionResult SearchRecordSurfaceController(FormCollection form)
{
var searchText = form["searchField"].ToString();
}