asp.net mvc querystring paramater 添加了一些阻止功能工作的字符
asp.net mvc querystring paramater add some character that prevent the functionality from working
我在简单的演示中工作,以便在 asp.net mvc 中进行搜索
一切正常,除了 url 包括阻止功能运行的 + 字符
url 看起来像这样
http://localhost:3189/products/Index?term=+a&name=Search
当我手动编辑它时,它工作正常
http://localhost:3189/products/Index?term=a&name=Search
这是我的模型
public class product
{
public int id { get; set; }
public string productName { get; set; }
public string productModel { get; set; }
public int productPrice { get; set; }
public int ModelNum { get; set; }
}
我只是使用脚手架生成带有视图的控制器
之后这是我在控制器上的编辑
public ActionResult Index(string term)
{
List<product> products = (from pr in db.products
where pr.productName.Contains(term) || pr.productName == null
select pr).ToList();
if (products.Count <= 0 || products == null)
{
//select all
return View(db.products);
}
//result of search
return View(products);
}
这是我在索引视图中的视图代码
<form>
<input type="search" name="term" value=" " id="term" placeholder="enter your products"/>
<input type="submit" name="name" value="Search" />
</form>
我真的不知道为什么会发生这种行为,也不知道从哪里添加了 + 号,就像我手动删除它时一样,一切正常
url 看起来像这样
http://localhost:3189/products/Index?term=+a&name=Search
当我手动编辑它时,它工作正常
http://localhost:3189/products/Index?term=a&name=Search
这不是 adublicte,我只将一个值传递给 url,另一个问题是传递多个值
如@RobertMoskal 在评论中解释的那样,问题是由于您输入中的额外前导 space
所以我删除了 value 属性,因为他添加了额外的术语
<input type="search" name="term" value=" " id="term" placeholder="enter your products"/>
并且工作正常
我在简单的演示中工作,以便在 asp.net mvc 中进行搜索 一切正常,除了 url 包括阻止功能运行的 + 字符
url 看起来像这样 http://localhost:3189/products/Index?term=+a&name=Search
当我手动编辑它时,它工作正常 http://localhost:3189/products/Index?term=a&name=Search
这是我的模型
public class product
{
public int id { get; set; }
public string productName { get; set; }
public string productModel { get; set; }
public int productPrice { get; set; }
public int ModelNum { get; set; }
}
我只是使用脚手架生成带有视图的控制器
之后这是我在控制器上的编辑
public ActionResult Index(string term)
{
List<product> products = (from pr in db.products
where pr.productName.Contains(term) || pr.productName == null
select pr).ToList();
if (products.Count <= 0 || products == null)
{
//select all
return View(db.products);
}
//result of search
return View(products);
}
这是我在索引视图中的视图代码
<form>
<input type="search" name="term" value=" " id="term" placeholder="enter your products"/>
<input type="submit" name="name" value="Search" />
</form>
我真的不知道为什么会发生这种行为,也不知道从哪里添加了 + 号,就像我手动删除它时一样,一切正常 url 看起来像这样 http://localhost:3189/products/Index?term=+a&name=Search
当我手动编辑它时,它工作正常 http://localhost:3189/products/Index?term=a&name=Search
这不是 adublicte,我只将一个值传递给 url,另一个问题是传递多个值
如@RobertMoskal 在评论中解释的那样,问题是由于您输入中的额外前导 space 所以我删除了 value 属性,因为他添加了额外的术语
<input type="search" name="term" value=" " id="term" placeholder="enter your products"/>
并且工作正常