如果您的输入在 html 表单元素内(如果涉及 javascript,则不同) - 您可以使用 default model binding(它也绑定路由值和查询字符串参数)。
<form ...>
<input type="text" name="query" />
<input type="submit" .../>
</form>
提交时它会自动将表单值(按名称)绑定到操作参数:
public ActionResult PerformSearch(string query)
{
//whatever
}
在您的情况下-我怀疑您将输入作为复选框。这样的事情应该可以工作:
<form...>
<input type="checkbox" name="p" value="value1" />
<input type="checkbox" name="p" value="value2" />
<input type="checkbox" name="p" value="value3" />
<input type="checkbox" name="p" value="value4" />
<input type="checkbox" name="p" value="value5" />
</form>
public ActionResult PerformSearch(string[] p)
{
//whatever
}
仅 - 如果(表单方法 == "GET"),URL 看起来不太好。 :)
要显示结果,请为您的视图创建一个模型并通过视图显示它:
public ActionResult PerformSearch(string[] p)
{
var model = _searchService(p);
return View("Results", model);
}
Views/Results.aspx
<% foreach(var bar in Model){ %>
<%= bar.Name %>
<%}%>
附:在考虑 AJAX 调用时,请始终记住,您正在失去显示 URL + 搜索引擎不理解 JS 的能力。