Попытка создать динамическую частичную страницу в MVC3 из Telerik Grid - PullRequest
1 голос
/ 01 ноября 2011

У меня есть веб-приложение MVC3, в котором текущее представление использует тип модели

IList<Application.Models.dbTable>

Причина, по которой я использую IList <>, заключается в том, что сетка telerik на странице может понять вывод. моя цель состоит в том, чтобы иметь частичную страницу справа, которая использует модель application.model.dbTable, которая является динамической, поэтому, когда вы выбираете элемент в сетке telerik, он изменяет содержимое частичной страницы на основе индекса выбранного элемента на телерик сетке. В настоящее время я получаю сообщение о том, что для частичного представления требуется модель типа application.model.dbTable. Кажется, что он наследует модель от представления, в которое вложено частичное. Кроме того, как я могу передать значение по умолчанию этому частичному представлению, поскольку для отображения данных требуется индексное значение? Любая помощь была бы отличной, я не мог найти что-то слишком специфичное для этой ситуации, когда проводил исследования. Код ниже:

Index.cshtml:

 @model IList<application.Models.dbTable>

 @{
    ViewBag.Title = "Index";
  }

        @(Html.Telerik().Grid(Model)
            .Name("emailList")
            .Pageable()
            .Sortable()
        )

        @Html.Partial("DetailedLinkInfo");

DetailedLinkInfo.cshtml: @model application.Models.dbTable

 <fieldset>
     <legend>email</legend>

     <div class="display-label">sender</div>
     <div class="display-field">
         @Html.DisplayFor(model => model.sender)
     </div>

     <div class="display-label">subject</div>
     <div class="display-field">
         @Html.DisplayFor(model => model.subject)
     </div>

     <div class="display-label">priority</div>
     <div class="display-field">
         @Html.DisplayFor(model => model.priority)
     </div>
 </fieldset>
 <p>
     @Html.ActionLink("Edit", "Edit", new { id=Model.ID }) |
     @Html.ActionLink("Back to List", "Index")
 </p>

Контроллер: используя Систему; using System.Collections.Generic; использование System.Linq; использование System.Web; использование System.Web.Mvc; используя Application.Models;

namespace Application.Controllers
{
    public class applicationController : Controller
    {
        //
        // GET: /email/


        dbRepository er = new dbRepository();

        public ActionResult Index()
        {
            var model = er.findAll();

            return View(model);
        }
        [HttpGet]
        public ActionResult DetailedLinkInfo(int id)
        {
            if (id==null)
            {
                id = 1;
            }
            var details = er.findOne(id);
            return PartialView(details);
        } 

    }
}
...