我确信对此可能有一个非常简单的解释,但我尝试了几种方法都无济于事。
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;
});