Поиск по номеру в ASP.NET MVC - PullRequest
0 голосов
/ 05 апреля 2019

Я создаю поиск из таблицы в asp.net mvc, но он работает только со строкой, когда я перехожу на int и customer_mobile, появляется какая-то ошибка. Как я могу искать по номеру или INT?

Контроллер:

public ActionResult Index(string seraching)
    {
        return View(_context.Customers.Where(x => x.Customer_Name.Contains(seraching) || seraching == null).ToList());
    }

просмотр:

        @Html.TextBox("seraching")<input type="submit" value="Search" />


@if (Model.Count() == 0)
                    {
    <tr>
        <td colspan="3" style="color:red">
            No Match Any Document
        </td>
    </tr>
                    }

                else
                {

                    foreach (var item in Model)
                    {

Модель:

public class Customers
{
    [Key]
    public int Customer_Id { get; set; }

    public string Customer_Name { get; set; }

    public int Customer_Mobile { get; set; }

Спасибо

Ответы [ 2 ]

1 голос
/ 05 апреля 2019
    public ActionResult Index(int? seraching)
    {
       if (seraching.HasValue){
       return View(_context.Customers.Where(x=>x.Customer_Mobile.ToString().Contains(seraching.ToString())).ToList());}
       else{
       return View(_context.Customers.ToList());}
    }

Преобразование int в строку и использование содержимого, как вы использовали.

0 голосов
/ 05 апреля 2019

Почему бы не попробовать изменить параметр на int, а также изменить условие where для поиска по атрибуту, который также является int (например, Id, если он объявлен как int в модели Customers)

Кроме того, вы можете отказаться от .Contains и вместо этого использовать простой оператор == при сравнении целых чисел, что приведет к следующему:

public ActionResult Index(int seraching)
{
    return View(_context.Customers.Where(x => (x.MobileNumber == seraching) || seraching == null).ToList());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...