Можете ли вы использовать ViewBag в качестве источника данных в MVC 3 WebGrid? - PullRequest
0 голосов
/ 14 марта 2011

Если так, какой будет синтаксис. Я не нахожу много документации, и то, что у меня есть, не работает.

Класс контроллера:

public ActionResult Results()
    {                   

        List<GMUOverview> _results = new List<GMUOverview>
        {
            new GMUOverview { GMU = "EE00101R", UnitsIncluded = "12,13,14", SuccessRate = "19%", MinReqResPoints = "3", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
            new GMUOverview { GMU = "EE00102R", UnitsIncluded = "12,13,64", SuccessRate = "19%", MinReqResPoints = "3", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
            new GMUOverview { GMU = "EE00103R", UnitsIncluded = "12,43,14", SuccessRate = "21%", MinReqResPoints = "4", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
            new GMUOverview { GMU = "EE00104R", UnitsIncluded = "22,13,14", SuccessRate = "22%", MinReqResPoints = "5", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
            new GMUOverview { GMU = "EE00105R", UnitsIncluded = "12,13,14", SuccessRate = "33%", MinReqResPoints = "6", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
            new GMUOverview { GMU = "EE00106R", UnitsIncluded = "12,13,14", SuccessRate = "44%", MinReqResPoints = "7", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
        };


        ViewBag.Result = _results;        

        return View();
    }

Вид:

@using (Html.BeginForm())
{   

@{
    var grid = new WebGrid(ViewBag.Result);

      <div id="grid"> 
        @grid.GetHtml() 
    </div> 

 }

}

1 Ответ

2 голосов
/ 14 марта 2011

Почему вы используете ViewBag вместо моделей представлений и строго типизированных представлений?Это уродливо / плохо / слабо набрано / дерьмо / (поместите любое плохое слово / проклятие, о котором вы можете подумать здесь)?

И если, несмотря на мою напыщенную речь, вы решите использовать ViewBag, вот правильный синтаксис:

@{
    var grid = new WebGrid(ViewBag.Result);
}

@using (Html.BeginForm())
{   
    <div id="grid"> 
        @grid.GetHtml() 
    </div> 
}

Или правильный путь с использованием моделей представления курса:

public ActionResult Results()
{                   
    var _results = new List<GMUOverview>
    {
        new GMUOverview { GMU = "EE00101R", UnitsIncluded = "12,13,14", SuccessRate = "19%", MinReqResPoints = "3", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
        new GMUOverview { GMU = "EE00102R", UnitsIncluded = "12,13,64", SuccessRate = "19%", MinReqResPoints = "3", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
        new GMUOverview { GMU = "EE00103R", UnitsIncluded = "12,43,14", SuccessRate = "21%", MinReqResPoints = "4", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
        new GMUOverview { GMU = "EE00104R", UnitsIncluded = "22,13,14", SuccessRate = "22%", MinReqResPoints = "5", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
        new GMUOverview { GMU = "EE00105R", UnitsIncluded = "12,13,14", SuccessRate = "33%", MinReqResPoints = "6", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
        new GMUOverview { GMU = "EE00106R", UnitsIncluded = "12,13,14", SuccessRate = "44%", MinReqResPoints = "7", MinReqNResPoints="5", AvailableLicenses="123", TotalApplications=221, Season="1", Year="2009" },
    };
    return View(_results);
}

, а затем:

@model System.Collections.Generic.List<AppName.Models.GMUOverview>
@{
    var grid = new WebGrid(Model);
}

@using (Html.BeginForm())
{   
    <div id="grid"> 
        @grid.GetHtml() 
    </div> 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...