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
,以及创建“请求”对象或名为“请求”的局部视图中所需的任何内容的所有其他相关部分 i、 e.email=”在初始控制器方法上根据需要预填充foo@bar“
ViewData[“SomeRequest”]=dbRepository.GetRequestById(intrequestId)代码>
- 在您的视图中,调用
Html.RenderPartial(“Request”,ViewData[“SomeRequest”)代码>
- 同时删除
。我们将预填充ViewData,其中包含发送到分部文件所需的所有数据 - 在初始控制器方法中,创建一个新的ViewData条目,可能是
ViewData[“SomeRequest”]
- 使用
和requestId=12
,以及创建“请求”对象或名为“请求”的局部视图中所需的任何内容的所有其他相关部分 i、 e.email=”在初始控制器方法上根据需要预填充foo@bar“
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);
}