我有一个像这样定义的JavaScript函数:
function onQuickSearchClick(s) {
var query = s.GetText();
$.post('/Search/', { query: query });
}
现在我想用SearchController中的查询文本调用View“Search”。我怎么能这样做?
执行此操作时,不会显示任何视图:
SearchController.cs:
public ActionResult Index(string query)
{
// Can't do "return View(query)" here, because this would be interpreted as the view name
return View();
}
如何将查询参数传递给我的Views / Search / Index.cshtml?
答案 0 :(得分:2)
function onQuickSearchClick(s) {
var query = s.GetText();
window.location = '@Url.Action("Index", "Search")?query=' + query;
/* OR
window.location = 'Search/Index?query=' + query;
*/
//$.post('/Search/', { query: query });
}
我想我没理解。您可以将字符串作为模型返回:
public ActionResult Index(string query)
{
return View((object)query);
}
然后你的MVC会知道query
是一个模型而不是viewName
答案 1 :(得分:1)
你必须使用三个参数重载。
第一个参数是视图名称,第二个参数是主视图名称,最后一个是模型。
return View("Index", "", query);