2

我有一个这样定义的 JavaScript 函数:

function onQuickSearchClick(s) {
    var query = s.GetText();

    $.post('/Search/', { query: query });
}

现在我想用 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?

4

2 回答 2

3
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

于 2013-05-23T09:00:34.030 回答
1

您必须为此使用三个参数重载。

第一个参数是视图名称,第二个是主视图名称,最后一个是模型。

return View("Index", "", query);
于 2013-05-23T08:52:32.763 回答