2

次のように定義された 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 にクエリ パラメータを渡すにはどうすればよいですか?

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はqueryviewNameではなくモデルであることを認識します

于 2013-05-23T09:00:34.030 に答える
1

そのためには、3 つのパラメーターのオーバーロードを使用する必要があります。

最初のパラメーターはビュー名、2 番目はマスター ビュー名、最後はモデルです。

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