Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc MVC将模型对象从控制器传递到视图_Asp.net Mvc - Fatal编程技术网

Asp.net mvc MVC将模型对象从控制器传递到视图

Asp.net mvc MVC将模型对象从控制器传递到视图,asp.net-mvc,Asp.net Mvc,我试图在以下场景中找出如何将模型对象从控制器传递到视图: <% Html.Action("GetRequest", "The_Controller", new { requestId = 12 }); %> <% Html.RenderPartial("Request", ViewData.Model); %> 视图的Javascript: function OpenRequest(requestId) { var methodName = '<

我试图在以下场景中找出如何将模型对象从控制器传递到视图:

<% Html.Action("GetRequest", "The_Controller", new { requestId = 12 }); %>
<% Html.RenderPartial("Request", ViewData.Model); %>
视图的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 });

    }
函数OpenRequest(requestId){
var methodName=''+'控制器/GetRequest/';
var dataType=“html”;
var postData={requestId:requestId};
var contentType=“应用程序/x-www-form-urlencoded”;
var request=ContactServer(methodName、postData、dataType、contentType);
$(“#dialog”).html(请求);
$(“#dialog”).dialog({html:request,title:'request details…',宽度:800,高度:600,模态:true,zindex:300000,show:'scale',可调整大小:false});
}

最好将其设置在视图不调用控制器的位置。在调用此视图的操作中加载请求的所有数据,并用所需数据填充视图模型。完成后,从模型渲染字段


至于你的实际问题。首先调用此视图的操作将填充其上下文的ViewData.Model。当您调用action方法时,框架正在使用自己的ViewData创建一个新的上下文,如果没有新创建上下文的句柄,您将无法访问它。

最好将其设置在视图不调用控制器的位置。在调用此视图的操作中加载请求的所有数据,并用所需数据填充视图模型。完成后,从模型渲染字段


至于你的实际问题。首先调用此视图的操作将填充其上下文的ViewData.Model。当您调用action方法时,框架正在使用自己的ViewData创建一个新的上下文,如果没有对新创建的上下文的句柄,您将无法访问它。

您似乎已经预先获得了在初始控制器action方法中创建“Request”对象所需的所有信息

建议:

  • 同时删除
    。我们将预填充ViewData,其中包含发送到分部文件所需的所有数据

  • 在初始控制器方法中,创建一个新的ViewData条目,可能是
    ViewData[“SomeRequest”]

  • 使用
    requestId=12
    email=”在初始控制器方法上根据需要预填充foo@bar“
    ,以及创建“请求”对象或名为“请求”的局部视图中所需的任何内容的所有其他相关部分

    i、 e.
    ViewData[“SomeRequest”]=dbRepository.GetRequestById(intrequestId)

  • 在您的视图中,调用
    Html.RenderPartial(“Request”,ViewData[“SomeRequest”)


您似乎已经预先获得了在初始控制器操作方法中创建“请求”对象所需的所有信息

建议:

  • 同时删除
    。我们将预填充ViewData,其中包含发送到分部文件所需的所有数据

  • 在初始控制器方法中,创建一个新的ViewData条目,可能是
    ViewData[“SomeRequest”]

  • 使用
    requestId=12
    email=”在初始控制器方法上根据需要预填充foo@bar“
    ,以及创建“请求”对象或名为“请求”的局部视图中所需的任何内容的所有其他相关部分

    i、 e.
    ViewData[“SomeRequest”]=dbRepository.GetRequestById(intrequestId)

  • 在您的视图中,调用
    Html.RenderPartial(“Request”,ViewData[“SomeRequest”)


您可以让控制器操作返回部分视图:

<%= Html.Action("GetRequest", "The_Controller", new { requestId = 12 }) %>

通过这种方式,
GetRequest
操作将请求对象传递给强类型的
request.ascx
部分视图,并将其包含在页面中调用
Html.action
helper的位置。

您可以让控制器操作返回部分视图:

<%= Html.Action("GetRequest", "The_Controller", new { requestId = 12 }) %>

通过这种方式,
GetRequest
操作将请求对象传递给强类型的
request.ascx
部分视图,并将其包含在页面中调用
Html.action
helper的位置。

您好,我已经更改了对RenderPartial的调用,但是ViewData[“SomeRequest”]仍然为空。但是,该调用确实调用了我在其中设置ViewData[“SomeRequest”]=dbRepository.GetRequestById(intrequestId)的控制器;控制器填充ViewData,但在我需要调用RenderPartial的位置,它为空:(您好,您的解决方案可行,但部分答案是可以接受的,因为场景是动态的。一旦我使用初始视图设置ViewData,它将被设置为特定Id的请求,这意味着它将保持静态。我需要的是以动态方式检索对象的方法,即当用户双击jqGrid行时,requestId将发生变化,这就是我调用Action方法的时候。Id 12只是一个演示值,它将被一个变量替换。但是我想到一件事…我将尝试使用jqGrid的doubleick事件调用控制器并设置ViewData变量,我认为该变量应可用于传递到部分视图。我将我将于明天发回结果。您好,我已将调用更改为RenderPartial,但ViewData[“SomeRequest”]仍然为空。但是,该调用确实调用了我设置ViewData[“SomeRequest”]=dbRepository.GetRequestById(intrequestId)的控制器;控制器填充ViewData,但在我需要调用RenderPartial的位置,它为空:(您好,您的解决方案可行,但部分答案是可以接受的,因为场景是动态的。一旦我使用初始视图设置ViewData,它将被设置为特定Id的请求,这意味着它将保持静态。我需要的是以动态方式检索对象的方法,即当用户双击jqGrid行时,reques蒂德会查
public ActionResult GetRequest(int requestId)
{
    var request = _repository.GetRequest(requestId);
    return PartialView("Request", request);
}