امکان جستجو چند فیلد از جدول مثال در جدولی
string name
int serial no
int code
string city
این فیلد ها وجود دارد میخواهیم در جستجو هم بتوانیم یکبار name و یکبار code یا فیلد دیگر را جستجو کنیم .
این کد هست ولی فقط یک فیلد سرچ میکند.
public async Task<IActionResult> Index(string searchString)
{
var movies = from m in _context.Movie
select m;
if (!String.IsNullOrEmpty(searchString))
{
movies = movies.Where(s => s.Title.Contains(searchString));
}
return View(await movies.ToListAsync());
}
ظاهرا شما قصد دارید یک جست و جوی ترکیبی از چند فیلد با استفاده از دستورات Entity Framewok رو ایجاد کنید. برای این منظور لینک زیر رو مطالعه کنید. به صورت کامل و با مثال این کار مرحله به مرحله انجام شده.
با And و or شرط های مختلفی در کوئری بزارید. در کوئری زیر من از or استفاده کردم( واسه کار شما هم or متاسب هست)
movies = movies.Where(
s => s.Title.Contains(searchString)
|| s.Name.Contains(searchString)
|| s.Code.Contains(Convert.ToInt32(searchString)
|| s.Serial_No.Contains(Convert.ToInt32(searchString)
));
اگر هم میخوای هر کدوم جداگونه جستجو بشن، باید کنار فیلد جستجو یه گزینه دیگه بزاری که مشخص بشه توی کدوم فیلد قراره سرچ انجام بشه و توی کدهات شرط بزاری اگه فلان فیلد بود، فلان کوئری اجرا بشه.
مشکل این کد برای جستجو کجاست و از این قسمت ایراد میگیره var movies = from m in _iuw.NewsRepositoryUW
select m;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.EntityFrameworkCore;
using newsSite90tv.Models;
using newsSite90tv.Models.UnitOfWork;
using newsSite90tv.Models.ViewModels;
using newsSite90tv.Services;
namespace newsSite90tv.Areas.AdminPanel.Controllers
{
[Area("AdminPanel")]
public class NewsController : Controller
{
private readonly IUnitOfWork _iuw;
private readonly IUploadfile _upload;
private readonly UserManager<ApplicationUsers> _userManager;
private object _context;
private string movieGenre;
public NewsController(IUnitOfWork iuw, IUploadfile upload, UserManager<ApplicationUsers> userManager)
{
_iuw = iuw;
_upload = upload;
_userManager = userManager;
}
public async Task<IActionResult> Index(string News, string searchString)
{
// Use LINQ to get list of genres.
IQueryable<string> genreQuery = from m in _iuw.NewsRepositoryUW
orderby m.Title
select m.Title;
var movies = from m in _iuw.NewsRepositoryUW
select m;
if (!string.IsNullOrEmpty(searchString))
{
movies = movies.Where(s => s.Title.Contains(searchString));
}
if (!string.IsNullOrEmpty(movieGenre))
{
movies = movies.Where(x => x.Genre == movieGenre);
}
var movieGenreVM = new PrintViewModel
{
Title = new SelectList(await genreQuery.Distinct().ToListAsync()),
Movies = await movies.ToListAsync()
};
return View(movieGenreVM);
}
[HttpGet]
public IActionResult Index(int page = 1, string newssearch = null)
{
if (newssearch != null)
{
int paresh = (page - 1) * 8;
//تعداد کل ردیف ها
int totalCount = _iuw.NewsRepositoryUW.Get(n => n.Title.Contains(newssearch)).Count();
ViewBag.PageID = page;
double remain = totalCount % 8;
if (remain == 0)
{
ViewBag.PageCount = totalCount / 8;
}
else
{
ViewBag.PageCount = (totalCount / 8) + 1;
}
ViewBag.ViewTitle = "لیست اخبار";
ViewBag.searchString = newssearch;
var model = _iuw.NewsRepositoryUW.Get
(u => u.UserID == _userManager.GetUserId(User) && u.Title.Contains(newssearch), null, "tblCategory").Skip(paresh).Take(8);
return View(model);
}
else
{
int paresh = (page - 1) * 8;
//تعداد کل ردیف ها
int totalCount = _iuw.NewsRepositoryUW.Get().Count();
ViewBag.PageID = page;
double remain = totalCount % 8;
if (remain == 0)
{
ViewBag.PageCount = totalCount / 8;
}
else
{
ViewBag.PageCount = (totalCount / 8) + 1;
}
ViewBag.ViewTitle = "لیست اخبار";
var model = _iuw.NewsRepositoryUW.Get
(u => u.UserID == _userManager.GetUserId(User), null, "tblCategory").Skip(paresh).Take(8);
return View(model);
}
}
}
}
تاریخ :
1402/04/28
- ساعت :
09:04:00 PM
- بازدید :
1330
- پاسخ :
0
|
تاریخ :
1403/12/01
- ساعت :
01:07:00 PM
- بازدید :
192
- پاسخ :
0
|
تاریخ :
1403/12/26
- ساعت :
03:04:00 PM
- بازدید :
83
- پاسخ :
1
|
تاریخ :
1403/12/23
- ساعت :
03:14:00 PM
- بازدید :
173
- پاسخ :
1
|
تاریخ :
1403/12/23
- ساعت :
11:21:00 AM
- بازدید :
179
- پاسخ :
1
|
تاریخ :
1399/09/20
- ساعت :
01:21:00 PM
- بازدید :
6850
- پاسخ :
1
|
تاریخ :
1403/12/22
- ساعت :
11:05:00 AM
- بازدید :
221
- پاسخ :
1
|
تاریخ :
1399/11/25
- ساعت :
11:22:00 AM
- بازدید :
3934
- پاسخ :
2
|
تاریخ :
1403/12/19
- ساعت :
11:21:00 PM
- بازدید :
88
- پاسخ :
1
|
تاریخ :
1403/12/18
- ساعت :
07:24:00 PM
- بازدید :
132
- پاسخ :
1
|
تاریخ :
1404/01/16
- ساعت :
07:20:00 PM
- بازدید :
158
- پاسخ :
1
|
تاریخ :
1404/01/17
- ساعت :
05:35:00 PM
- بازدید :
87
- پاسخ :
0
|
تاریخ :
1404/01/07
- ساعت :
05:02:00 AM
- بازدید :
119
- پاسخ :
1
|
تاریخ :
1402/04/28
- ساعت :
09:04:00 PM
- بازدید :
1330
- پاسخ :
0
|
تاریخ :
1403/12/30
- ساعت :
06:43:00 PM
- بازدید :
93
- پاسخ :
1
|
تاریخ :
1398/08/23
- ساعت :
09:16:00 PM
- بازدید :
9890
- پاسخ :
1
|
تاریخ :
1404/01/03
- ساعت :
12:18:00 PM
- بازدید :
51
- پاسخ :
1
|
تاریخ :
1404/01/03
- ساعت :
10:39:00 AM
- بازدید :
56
- پاسخ :
1
|
تاریخ :
1404/01/02
- ساعت :
05:05:00 PM
- بازدید :
78
- پاسخ :
1
|
تاریخ :
1403/12/30
- ساعت :
06:52:00 PM
- بازدید :
69
- پاسخ :
1
|