В настоящее время я делаю веб-приложение, используя asp. net core и angular. Я пытался использовать «Contains» в контроллере, он работает, когда я использую строку, например: .Contains("Galletas")
, но когда я использую параметр, он не работает, например: .Contains(nombre)
.
Я использую Служба с angular для вызова контроллера метода информации базы данных.
Я проверил параметр "nombre", у него есть информация и он не равен нулю.
"Galletas" - это все, что угодно, я использовал "Galletas", как пример для проверки запроса. Вы можете видеть var "nombre", я хочу, чтобы запрос работал с параметром "nombre". Очень спасибо, что помогли мне.
![return length: 0](https://i.stack.imgur.com/6YGL0.png)
Код контроллера
[HttpGet]
[Route("api/Producto/filtrarProductosPorNombre/{nombre}")]
public IEnumerable<ProductoCLS> filtrarProductosPorNombre(string nombre)
{
using (BDRestauranteContext bd = new BDRestauranteContext())
{
List<ProductoCLS> lista = (from producto in bd.Producto
join categoria in bd.Categoria
on producto.Iidcategoria equals
categoria.Iidcategoria
where producto.Bhabilitado == 1
&& producto.Nombre.ToLower().Contains(nombre.ToLower())
select new ProductoCLS
{
idproducto = producto.Iidproducto,
nombre = producto.Nombre,
precio = (decimal)producto.Precio,
stock = (int)producto.Stock,
nombreCategoria = categoria.Nombre
}).ToList();
return lista;
}
}
Когда я использую строку ("Galletas") в Contains работает
[HttpGet]
[Route("api/Producto/filtrarProductosPorNombre/{nombre}")]
public IEnumerable<ProductoCLS> filtrarProductosPorNombre(string nombre)
{
using (BDRestauranteContext bd = new BDRestauranteContext())
{
List<ProductoCLS> lista = (from producto in bd.Producto
join categoria in bd.Categoria
on producto.Iidcategoria equals
categoria.Iidcategoria
where producto.Bhabilitado == 1
//&& producto.Nombre.ToLower().Contains(nombre.ToLower())
&& producto.Nombre.Contains("Galletas")
select new ProductoCLS
{
idproducto = producto.Iidproducto,
nombre = producto.Nombre,
precio = (decimal)producto.Precio,
stock = (int)producto.Stock,
nombreCategoria = categoria.Nombre
}).ToList();
return lista;
}
}
Angular сервисный код
import { Injectable, Inject } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class ProductoService {
urlBase: string;
constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {
// urlBase tiene el nombre del dominio
this.urlBase = baseUrl;
}
public getProducto() {
return this.http.get(this.urlBase + 'api/Producto/listarProductos');
// .subscribe(data => {
// console.log(data);
// });
}
public filtrarProductosPorNombre(nombre) {
return this.http.get(this.urlBase + 'api/Producto/filtrarProductosPorNombre/{' + nombre + '}');
}
}