我确信这可能有一个非常简单的解释,但我尝试了几种方法无济于事。
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;
});
答案 0 :(得分:4)
编辑:
window.location
/ window.location.href
和其他变体需要使用=
运算符进行设置,而不是使用括号(()
),例如与window.open()
一起使用。< / p>
更改:window.location.href("../Collector/Index?collectorName=Tom");
收件人:window.location.href="../Collector/Index?collectorName=Tom";