2016-05-04 2 views
0

Я работаю в простой демонстрационной версии, чтобы сделать asearch в asp.net mvc все работает нормально, за исключением того, что URL-адрес, включая символ +, который предотвращает работу функцииasp.net mvc querystring paramater добавить некоторый символ, который не позволяет функциям работать

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 и другой вопрос для передачи многодискового значения

+1

Где в вашем коде создается поисковый url? –

+0

это мой взгляд код в индексном

<входной тип = «поиск» название = «термин» значение = «„ID =“термин» заполнитель = „введите ваши продукты“ /> <входной тип = "представить "name =" name "value =" Search "/>
Я тоже добавил к теме, спасибо – user4833581

+0

Что произойдет, если вы измените поле поиска на текстовое поле? –

ответ

1

как @RobertMoskal объясняет в комментариях, что проблема из-за лишнего ведущего пространства в вашем входе , поэтому я удалил атрибут value, добавив дополнительный термин

<input type="search" name="term" value=" " id="term" placeholder="enter your products"/> 

и работает нормально