Window.Location.Href或重定向_self的其他方法不起作用(MVC View)

时间:2013-07-01 17:57:49

标签: javascript jquery asp.net-mvc

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

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

直接导航到:

Collectors/Index?searchName=Tom

工作正常,所以我在视图上设置了一个文本框来接受参数,并尝试将用户重定向到searchName = Input。

问题是由于某种原因,window.location.href函数根本没有重定向页面。我已经尝试了window.open方法,目标设置为_self,但是没有用 - 但是使用target _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;
    });

1 个答案:

答案 0 :(得分:4)

编辑:

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

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

收件人:window.location.href="../Collector/Index?collectorName=Tom";