shalini
shalini

Reputation: 45

Passing Tuple model to MVC grid

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

Answers (1)

Matt
Matt

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

Related Questions