Исходя из ваших комментариев, Id
является целым числом, и ваши входные данные могут быть преобразованы в целое число и сравнены на равенство.Тогда в представлении вам нужно только добавить «00» для отображения.Взгляд не изменится, но действие изменится.Исправляя ошибку x.y.Id.Name
= = x.y.Name
и обрабатывая x.y.Id
как целое число, действие становится ...
public ActionResultAbensager(string searchingAbensager, int? pageNumber)
{
var query = db.RMAStatus.Join(
db.RMA_History,
u => u.ID, y => y.StatusID,
(u, y) => new { u, y });
if (searchingAbensager != null)
{
int abensager;
if (int.TryParse(searchingAbensanger, out abensager))
{
query = query.Where(x =>
x.y.Id == abensager ||
x.y.Name.Contains(searchingAbensager));
}
else
{
query = query.Where(x =>
x.y.Name.Contains(searchingAbensanger));
}
}
return View(query
.Select(t => new RMAHistory { ... })
.ToPagedList(pageNumber ?? 1, 10);
}
Используя построитель предикатов , оно может небудь таким многословным ...
public ActionResult Abensager(string searchingAbensager, int? pageNumber)
{
var predicate = PredicateBuilder.False<RMAHistory>();
if (searchingAbensager != null)
{
int abensager;
if (int.TryParse(searchingAbensanger, out abensager))
{
predicate = predicate.Or(p => p.Id = abensanger);
}
predicate = predicate.Or(p => p.Name.Contains(searchingAbensanger));
}
return db.RMAStatus.Join(db.RMA_History, u => u.ID, y => y.StatusID, (u, y) => new { u, y })
//.AsExpandable() // If using Entity Framework
.Where(predicate);
}
возможно ...
private static PredicateBuilder.False<RMAHistory> AbensagerPredicate(string searchingAbensager)
{
var predicate = PredicateBuilder.False<RMAHistory>();
if (searchingAbensager == null) { return predicate; }
int abensager;
if (int.TryParse(searchingAbensanger, out abensager))
{
predicate = predicate.Or(p => p.Id = abensanger);
}
predicate = predicate.Or(p => p.Name.Contains(searchingAbensanger));
return predicate;
}
public ActionResult Abensager(string searchingAbensager, int? pageNumber)
{
return db.RMAStatus.Join(db.RMA_History, u => u.ID, y => y.StatusID, (u, y) => new { u, y })
//.AsExpandable() // If using Entity Framework
.Where(AbensagerPredicate(searchingAbensager));
}