Итак, я работаю над своим первым приложением ASP.NET MVC 3 и отображаю jqGrid для пользователя с различными морожеными, которые мы делаем.После выбора одной из строк я в настоящее время вызываю Url.Action("Details", "IceCream")
, и в результате создается модель представления IceCreamDetails, которая имеет несколько списков (например, RelatedDesserts, HistoricData) и делаю что-то подобное в моем файле Details.cshtml:
...
<div>
@foreach (var related in Model.RelatedDesserts)
{
@Html.Partial("_RelatedDessert", related)
}
</div>
...
и это работает, но не так уж и здорово, поэтому я решил, что было бы лучше создать подсетку для этих объектов RelatedDesserts и предоставить средство для щелчка по строке в этой сетке, чтобы отобразить изображение в другом div- так что-то вроде мастер-детали-изображения.Следите?
Прямо сейчас я делаю это с помощью того, что, по моему мнению, является запутанным механизмом и надеялся, что кто-то может предложить лучший, более чистый путь.По сути, я заменил это:
@Html.Action("SubGrid", RelatedDesserts)
для этого цикла foreach, описанного выше, и, конечно, вызывает действие SubGrid на контроллере RelatedDesserts.Это действие выполняет что-то вроде этого:
public PartialViewResult SubGrid(int iceCreamID)
{
using (var db = new IceCreamEntities())
{
return PartialView(iceCreamID);
}
}
, которое отображает представление SubGrid, которое выглядит примерно так:
<table id="relatedGrid" cellpadding="0" cellspacing="0">
</table>
<div id="relatedPager" style="text-align: center">
</div>
<div id="relatedImage">
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#relatedGrid').jqGrid({
url: '@Url.Action("GridData", "RelatedDesserts", new {iceCreamID = @Model})',
...
и которое просматривает связанные данные десерта, создает результат и возвращаетэто так:
return Json(result, JsonRequestBehavior.AllowGet);
, и это заполняет relatedGrid моими данными.
Но кажется, что это не все так упрощено, и что все, что делает часть SubGrid, обеспечиваетцель для результатов действия GridData, но я не уверен, как объединить эти два действия (SubGrid и GridData), чтобы сделать вещи проще.Я, может быть, действительно поступаю неправильно.Как я могу упростить и улучшить это?