3

我确信对此可能有一个非常简单的解释,但我尝试了几种方法都无济于事。

MVC 有点新,但我已经设置了一个带有条件搜索参数的控制器,现在只需要一种通过查询字符串传递参数的方法。

直接导航到:

Collectors/Index?searchName=Tom

完美运行,所以我在视图上设置了一个文本框来接受参数,并试图将用户重定向到 searchName= Input。

问题是由于某种原因 window.location.href 函数根本没有重定向页面。我已经尝试将目标设置为 _self 的 window.open 方法,但没有成功 - 但是使用目标 _new 或不指定总是有效。

该功能是否有任何理由不能在同一个窗口上运行?

以下内容在之前产生警报,之后没有重定向,也没有警报:

        $("#search").click(function () {
        alert("before");
        window.location.href("../Collector/Index?collectorName=Tom");
        alert("after");

但是,这会产生警报和重定向(以及搜索结果)

  $("#search").click(function () {
        alert("before");
        window.open("../Collector/Index?collectorName=Tom");
        alert("after");
    });

我的控制器动作:

public ActionResult Index(string collectorName)
    {

        var db = new CollectorsCRUDController();

        var query = db.GetEXCEL_Collectors();

        if (!String.IsNullOrEmpty(collectorName))
        {
            query = query.Where(c => c.CollectorName.Contains(collectorName));

        }


        return View(query);

    }

任何提示都会很棒!谢谢!

解决


对于其他有此问题的人:

我的问题是我使用错误的语法来调用 window.location 方法......

window.location = URL 

不是

window.location(URL); 

对我有用的完整代码

    $("#search").click(function () {
        var query = $("#searchName").val();
        window.location = "/Collector/Index?collectorName=" + query;
    });
4

1 回答 1

6

编辑:

window.location/window.location.href和其他变体需要使用=运算符进行设置,而不是使用括号 ( ()),例如使用 with window.open()

改变:window.location.href("../Collector/Index?collectorName=Tom");

至:window.location.href="../Collector/Index?collectorName=Tom";

于 2013-07-01T18:00:51.087 回答