相关疑难解决方法(0)

RenderAction RenderPartial

根据我的理解Html.RenderPartial,ASP.NET MVC版本HTML.RenderActionMicrosoft.Web.Mvc.ViewExtensions包含的内容与MVC Futures中包含的内容之间存在很大差异.

在我的应用程序中,我有许多页面由许多"小部件"(类型)组成,每个小部件都有自己的特定功能.

在我看来,使用该RenderAction方法更合理,因为每个小部件都有一个专用控制器,负责获取不同的数据并呈现专用视图(而不是只有一个控制器和一个唯一的视图模型传递给RenderPartial帮助器来呈现视图).

从测试中我已经完成了一个指向控制器中的Create动作方法的表单,如:

 <% using (Html.BeginForm("Create", "Message", FormMethod.Post, 
     new { id = "messageCreateForm" })) {%>
Run Code Online (Sandbox Code Playgroud)

并用它来调用它

 <% Html.RenderPartial("MessageForm",new MessageDTO()); %>
Run Code Online (Sandbox Code Playgroud)

将正确呈现:

<form id="messageCreateForm" method="post" action="/Message/Create">
Run Code Online (Sandbox Code Playgroud)

但是使用相同的等价物RenderAction(因此MessageForm在控制器上使用动作方法来渲染视图)将无法正确渲染:

 <% Html.RenderAction<MessageController>(m => m.MessageForm()); %>
Run Code Online (Sandbox Code Playgroud)

将呈现:

<form id="messageCreateForm" method="post" action="">
Run Code Online (Sandbox Code Playgroud)

请注意,该操作为空.

这是使用RenderAction帮助程序的正确方法吗?在这种情况下使用它是否正确?

更新:实际上将部分视图重命名为_MessageForm会正确地呈现表单.

asp.net-mvc

47
推荐指数
1
解决办法
4万
查看次数

ASP.NET MVC - 部分视图可以有控制器吗?

当我在一个视图中,我调用我@Html.RenderPartial("MyPartialView", MyObject) 可以设置它,以便这个局部视图有一个控制器,当调用RenderPartial时调用该控制器吗?

asp.net-mvc html.renderpartial

6
推荐指数
1
解决办法
5845
查看次数

标签 统计

asp.net-mvc ×2

html.renderpartial ×1