Я пытаюсь выяснить, как передать объект модели из контроллера для просмотра в следующем сценарии:
<% Html.Action("GetRequest", "The_Controller", new { requestId = 12 }); %>
<% Html.RenderPartial("Request", ViewData.Model); %>
Действие должно, и оно вызывает метод контроллера, который ищет запрособъект в хранилище БД и возвращает объект запроса.
Частичное представление с именем Request должно получить объект запроса и отобразить его.
Проблема заключается в том, что ViewData.Model всегда имеет значение null?!
Я пытался выяснить это, но безуспешно: (
Причина такого поведения в том, что мне нужно отобразить частичное представление внутри модального диалога jQuery на основеЗначение requestId, предоставленное jQGrid. Я достиг точки, где я открываю диалоговое окно, но не могу получить экземпляр этого объекта модели.
Любая помощь приветствуется.
РешениеС помощью Ника Ларсена и Дарина Димитрова
Контроллер:
[AcceptVerbs(HttpVerbs.Post)]
[Authorize]
public PartialViewResult GetRequest(string requestId)
{
Request request = DatabaseContext.GetRequest(Convert.ToInt32(requestId)) as Request;
return PartialView("Request", request);
}
Javascript вида:
function OpenRequest(requestId) {
var methodName = '<%= Url.Content("~")%>' + 'Controller/GetRequest/';
var dataType = "html";
var postData = { requestId: requestId };
var contentType = "application/x-www-form-urlencoded"; ;
var request = ContactServer(methodName, postData, dataType, contentType);
$("#dialog").html(request);
$("#dialog").dialog({ html: request, title: 'Request details...', width: 800, height: 600, modal: true, zindex: 300000, show: 'scale', resizable: false });
}