Hi,
What is the problem here? I get this error.
Error : RuntimeBinderException: 'object' does not contain a definition for 'Tarih'
Controller
public IActionResult ArtikelList(string id)
{
var artikel = _artikelReadRepository.GetWhere(x => x.BeyannameNO == id)
.OrderByDescending(x => x.CreatedDate).ToList();
var a = _beyannameReadRepository.GetWhere(x => x.BeyannameNO == id)
.OrderByDescending(x => x.CreatedDate).ToList();
var res = (from v in artikel
join y in a
on v.BeyannameId equals y.Id
select new
{
Tarih = y.Tarih
}).ToList();
ViewBag.Artikel = res;
return View();
}
View
@foreach (var item in ViewBag.Artikel)
{
<div class="card mb-2">
<div class="card-header" id="headingOne">
<h5 class="m-0">
<a href="#collapseOne" class="text-dark" data-toggle="collapse" aria-expanded="true" aria-controls="collapseOne">
@item.Tarih
</a>
</h5>
</div>
}
Download FREE API for Word, Excel and PDF in ASP.Net:
Download
dharmendr
on Jun 08, 2022 09:11 AM
on Jun 09, 2022 05:21 AM
2
Hi AliYilmaz,
To fix this error creating a class and return strongly type model instead of anonymous object.
Refer below example.
Database
For this example I have used of Northwind database that you can download using the link given below.
Download Northwind Database
Model
public class Customer
{
public string CustomerID { get; set; }
public string ContactName { get; set; }
public string City { get; set; }
public string Country { get; set; }
}
Controller
public class HomeController : Controller
{
private DBCtx Context { get; }
public HomeController(DBCtx _context)
{
this.Context = _context;
}
public IActionResult Index()
{
var res = (from customer in this.Context.Customers.Take(5)
select new CustomerModel { Name = customer.ContactName }).ToList();
ViewBag.Artikel = res;
return View();
}
public class CustomerModel
{
public string Name { get; set; }
}
}
View
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
@foreach (var item in ViewBag.Artikel)
{
@item.Name
<br />
}
</body>
</html>
Output
Maria Anders
Ana Trujillo
Antonio Moreno
Thomas Hardy
Christina Berglund