我正在使用RenderAction在我的视图中包含几个“组件”的输出。但每次我在嵌套操作中使用对ActionLink的RenderAction调用时,都会产生错误的路由。(RouteLink也是如此。)如果直接调用该操作,则会生成正确的路由。
因此,我在父视图的索引操作中多次调用该操作:
<% Html.RenderAction<StateAdminController>(c => c.Index(StateType.Event)); %>
<% Html.RenderAction<StateAdminController>(c => c.Index(StateType.Booking)); %>
<% Html.RenderAction<StateAdminController>(c => c.Index(StateType.Communication)); %>
<% Html.RenderAction<StateAdminController>(c => c.Index(StateType.Payment)); %> 在嵌套的索引视图中,我尝试对StateAdminController的ActionLink方法进行编辑:
<%= Html.ActionLink<StateAdminController>(c => c.Edit(state.Id), "Bearbeiten") %> 但是ActionLink指向我的父视图的索引操作。
这是一个已知的问题吗?我能做错什么吗?当从RenderAction调用操作时,应该如何执行ActionLinks?
提前谢谢你。
致以问候。
约阿希姆
发布于 2009-07-30 18:43:07
你提到了路线。值得注意的是,当您使用RenderAction时,控制器是直接调用的(即,不是从Url调用的)。因此,它不会通过您的路由表。
发布于 2009-10-04 20:36:27
我宁愿将我的视图模型设计为包含所有变体的属性,然后调用RenderPartial()
<% Html.RenderPartial("StateAdmin", Model.Event); %>
<% Html.RenderPartial("StateAdmin", Model.Booking); %>
<% Html.RenderPartial("StateAdmin", Model.Communication); %>
<% Html.RenderPartial("StateAdmin", Model.Payment); %> 或者甚至使用我自己的扩展方法,它循环遍历一个集合并为每个集合调用RenderPartial():
<% Html.RenderPartials("StateAdmin", Model.StateTypes); %> 虽然RenderAction()做到了这一点,但在我看来,从视图调用和呈现操作似乎有点错。视图已经是一个操作的结果。
https://stackoverflow.com/questions/1177098
复制相似问题