问题标签 [child-actions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
254 浏览

c# - 如何让一个孩子行动并从多个控制器调用它?

我有一个子操作从它自己的控制器调用它并返回 Views/Shared/PartialViewName 属于我的子操作。再次在另一个控制器中重复此操作并执行相同操作。一切都好。但我在某些控制器中重复子动作DRY

如何在控制器之间共享一个子操作是否可以像在视图文件夹中共享部分视图一样?

我在下面使用但不起作用:

更新: 我不使用区域

这是我的代码:

返回视图:

和这个:

返回这个:

0 投票
1 回答
384 浏览

c# - 有没有处理 MVC ChildActions 中异常的好方法

我似乎在使用 Child Actions 吞下很多异常。

我觉得我正在剪切和粘贴成堆的代码,每次剪切粘贴我们都知道一只小猫正被天使的眼泪淹没。

是否有更好的方法来管理子操作中的异常,以允许屏幕的其余部分正确呈现?

0 投票
2 回答
620 浏览

asp.net-mvc-4 - 使控制器的所有动作方法 ChildActionOnly

不必记住用ChildActionOnly属性来装饰一堆动作方法,能够在整个控制器中指定所有方法会很方便。

尝试将ChildActionOnly属性放在控制器类上不起作用(至少在我的代码上下文中),因为在控制器的依赖注入期间,发生在请求管道的早期阶段,没有 HttpContext 或 Request 对象,并且抛出错误“请求在此上下文中不可用”。

我可以创建一个RouteConstraint使路由本身强制执行的方法ChildActionOnly吗?由于相同的请求管道问题,这似乎令人怀疑——我不知道 HttpContext 在执行 RouteConstraints 期间是否可用。如果您有想法如何实现这一点,请分享。

也许创建一个单元测试,使用反射来发现特定控制器的所有操作方法并确保它们具有ChildActionOnly属性集......

我该如何做到这一点?您能否提供一些入门代码(不必完善甚至可以工作,只是一个起点会有所帮助)。

0 投票
1 回答
517 浏览

asp.net-mvc - 从 PartialView 操作中获取父控制器

我有一个_Partial.cshtml视图,它在Parent.cshtml视图中以下列方式调用:

父.cshtml:

@Html.Render("_Partial");

_Partial.cshtml视图中,有一个按钮以下列方式链接到表单:

DetailsController我有如下所示的发送操作:

我遇到的问题是ParentActionViewContext为空。

如何获取局部视图的父控制器名称?

0 投票
1 回答
223 浏览

azure - Azure Redis 缓存和 MVC 子操作

我已经使用 NuGet 中的 Microsoft RedisOutputCacheProvider成功实现了 Azure Redis 缓存,它对一般页面按预期工作。

但是,我似乎无法让它适用于子动作。在使用 Redis Cache 之前,它使用默认的 OutputCacheProvider 工作。

有没有人有任何想法,或者这只是一个限制?

提前致谢

0 投票
1 回答
222 浏览

asp.net - Caching in ASP.NET MVC with uncachable forms

I'm doing donut caching with the MVCDonutCaching library.

Background to donut caching using this library:
The way it works, is you can cache a view, but exclude part of it from being cached, i.e. the "donut hole". You do this by having the uncachable stuff as a partial view, which is rendered by a child action. Then in the view you call that child action Html.RenderAction(.... This way everything but that child action will be cached.

Problem:
I need to cache a view, which contains a form. Problem is the form includes an AntiForgeryToken, which obviously should not be cached.

An obvious solution is to make that form a "donut hole", and render it via a child action. But, it needs complex viewmodel data, and child actions ony accept primitive types as arguments, otherwise I get serialization errors.

What is a good way around this?

0 投票
1 回答
448 浏览

c# - Html.Action 用不同的链接路径渲染里面的部分菜单

我在主布局的标题内呈现一个菜单小部件。

_Layout.cshtml

FullMenu.cshtml

菜单控制器.cs

这是浏览器中的渲染输出

在此处输入图像描述

为什么渲染的超链接修改了控制器名称?甚至更多这些链接应用了小部件本身的控制器名称=>“菜单”为什么会这样?

0 投票
2 回答
672 浏览

c# - 带有回发的 MVC 组件

我正在尝试构建一组 MVC 组件,这些组件可以通过各种设置轻松重用。它们被构建并用作子操作,因为我需要它们能够在不知道它们所在视图的其他内容的情况下对自己进行部分回发。

我面临一个问题,即在不通过客户端传递参数的情况下将它们存储在哪里(我不想构建视图状态之类的东西,也出于安全原因),并使它们可用于部分回发。

这是一个简化的示例(并不是说代码可能无法编译,因为我削减了语法糖以将其简化为纯 MVC):

查看代码(组件使用):

控制器代码:

提要视图代码:

因此,当点击刷新按钮时,它应该呈现新数据,但该请求中缺少设置。

到目前为止,我只提出了一种解决方案,使某种设置注册由字符串键索引,他们将在其中注册他们的设置集。

修改视图代码(组件使用):

来自用户的额外代码:

修改后的控制器代码:

修改后的视图代码:

因此,在这种情况下,我只向客户端传递了该配置的一些唯一 ID,这很好,但与第一次相比,它具有糟糕的用户体验,因为它需要在放置组件的视图之外进行管理。

在这种情况下,我也无法使用内联模板,如第一个代码部分所示,因为在这种情况下,设置是在视图范围之外构建的。

请注意,我还需要它来处理应用程序重新启动和跨进程边界(在云中),因此我不能依赖在第一次加载视图时将配置存储在服务器端。

有没有更好的方法/最佳实践如何在 ASP.NET 4.6 / MVC 5 中做到这一点?

如果没有,是否可以在 ASP.NET 5 / MVC 6 中使用?

0 投票
0 回答
770 浏览

c# - 从控制器调用 ASP.NET MVC 子操作

在 ASP.NET MVC 视图中,可以像这样调用子操作:

@Html.Action("ActionName")

这会将调用的操作结果渲染ActionName到视图的输出。

是否可以在控制器中进行这样的子动作调用?


我的控制器操作的输出是 JSON,而不是 HTML,因此我在控制器而不是 Razor 模板中准备生成的 JSON 对象。如果我可以使用与使用 Razor 视图时使用的相同机制来通过子操作呈现部分响应,那将很有用。

我知道有可能以不同的方式构造代码,所以我可以在两个不同的控制器中重用相同的组件。但我想特别知道我是否可以像在视图中一样在控制器中获取子操作的结果。

有关该问题的更多信息,请参阅下面的问题评论。

0 投票
0 回答
109 浏览

asp.net-mvc - 在 MVC 5 中为 ChildAction 使用 Azure Redis 缓存

我已经使用 Microsoft RedisOutputCacheProvider 成功实现了 Azure Redis 缓存,它对一般页面按预期工作。

但是,我似乎无法让它对子操作起作用,它总是使用默认的 OutputCacheProvider。

即使对于 ChildActions,我怎样才能让它工作?