Reputation: 45
I have tuple view model contains list of Version and list of User.This tuple value I have to pass it to MVC grid.
Index.cshtml Page
@model Tuple<IEnumerable<Version>,IEnumerable<user>>
@Html.Grid(Model.Item1.AsEnumerable()).Columns(columns =>
{
columns.Add(c => c.VersionId).Titled("Version Id");
columns.Add(c => c.VersionName).Titled("Version Name").Filterable(true);
columns.Add(c => c.Description).Titled("Description");
}).WithPaging(20).Sortable(true)
Controller.cs
public ActionResult Index()
{
List<version> versionList = null;
List<user> userList = null;
versionList = _settingsRepo.GetVersionList();
userList = _settingsRepo.GetUserList();
var tuple = Tuple.Create<List<version>, List<user>>(versionList,
userList);
return View(tuple);
}
Facing error " 'Version' does not contain a definition for 'VersionId' and no extension method 'VersionId' accepting a first argument of type 'Version' could be found (are you missing a using directive or an assembly reference?) " at line columns.Add(c => c.VersionId).Titled("Version Id") in Index.cshtml page.
Upvotes: 0
Views: 1250
Reputation: 2851
Within your view you have
@model Tuple<IEnumerable<Version>,IEnumerable<user>>
whereas your controller is defined as
var tuple = Tuple.Create<List<version>, List<user>>(versionList,
userList);
Update the view to use the lower case version class
Upvotes: 2