问题标签 [renderaction]

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 投票
1 回答
2802 浏览

asp.net - 如何让 Html.RenderAction 在 Post 上调用 Get 方法?

在 Post 上渲染视图后,在视图内调用 RenderAction 将调用 Post 方法。有什么方法可以指定我要调用 Get 方法而不是 Post?

0 投票
1 回答
809 浏览

asp.net-mvc-2 - ASP MVC2 中部分缓存的当前做法是什么?

我的网站页面由两种内容组成。第一个在用户之间是可变的,但对于所有页面都是不变的。第二个在用户之间是不变的,但在页面之间是可变的。这是一种常见的布局。将输出缓存应用于此类内容的最佳方法是什么?

据我了解,Html.Substitute 助手与 MVC2 渲染管道不兼容,消除了甜甜圈缓存的旧方式。

对每个页面使用 VaryByParam="user" 的正常输出缓存?

特异性水平会降低输出缓存的价值。在缓存输出的生命周期内,同一用户不太可能多次查看同一页面。

使用备用 OutputCache 子系统

互联网上有几种尝试修改 OutputCache 属性和渲染子系统以支持替换。我找到的最好的是这里

但是,我发现的各种片段似乎都是非正式的实现,并且没有得到很好的支持。此外,我倾向于怀疑,如果将替换添加回 MVC2 管道那么容易,它就会完成。

从几个单独缓存的子动作组成最后一页

action 方法不会被标记为OutputCache属性,并且会返回一个包含多个Html.RenderAction调用的视图,这些调用将拉入独立缓存的内容。除了 using 的重量级影响之外RenderAction,它还会增加一层额外的间接层和代码味道。

您在 MVC2 中编写独立缓存的内容有何经验?什么效果好,什么效果不好?

0 投票
2 回答
3090 浏览

asp.net-mvc - ASP.NET MVC 中的可重用组件

我的网站上有一些我希望能够在多个页面上重复使用的功能(一些 UI 和相关功能)。就这个问题而言,假设它是一个“评论”功能。

在我的组件应用程序中有一个区域,该区域中有一个控制器:/Controllers/CommentController和两个部分视图:(/Views/Comment/Index.ascx用于列出评论)和/Views/Comment/Create.ascx(用于创建评论)。

CommentController 看起来像这样:

索引部分视图:

创建局部视图:

Index 部分视图包含在带有 的视图中RenderAction,如下所示:

此代码不起作用,因为部分视图中的表单提交给 CommentsController 上标记的操作[ChildActionOnly](这是设计使然,我不希望独立于托管页面请求“组件”)。

我怎样才能使这种“组件”方法起作用,即有一个提交表单以更改页面内组件状态而不丢失托管页面本身的部分视图?

编辑: 澄清一下,[ChildActionOnly]这里的使用不是我的问题。如果我从我的操作方法中删除该属性,我的代码只会“起作用”,因为它不会引发异常。提交表单时,我的“组件”仍然会跳出其托管页面(因为我告诉表单提交到部分视图的 URL!)。

0 投票
1 回答
162 浏览

asp.net-mvc-2 - 作为 ascx 工厂的控制器 - 坏主意?

我正在尝试创建类似 *.ascxs' 工厂的东西。

场景:我想渲染依赖于模型的控件,我已将其传递给 partialView。我想实现这样的目标:

工厂控制器:

我想知道有没有更好的方法来应对这种情况。我想这不是在 ASP.MVC 2 中构建网页的最有效方法。

如果这种方法可以接受,我该如何限制对此类控制器的访问?我只想在服务器端使用这个类,并且只能通过 ascxs 的页面

0 投票
1 回答
726 浏览

asp.net - 将 RenderAction() 与当前操作一起使用时出现问题

我正在构建一个具有组件架构的 ASP.Net MVC 2 应用程序。有两种不同类型的组件:Elementary Components和 Layout Components ,它们具有关联的控制器操作来呈现局部视图,以及Layout Components,它们在特定布局中呈现其所有子组件(基本组件或再次布局)。

这是我的通用RenderComponent()操作方法,它采用组件 ID 并呈现适当的视图:

Elementary.ascx呈现一个基本组件:

目前唯一存在的布局是VerticalLayout.ascx


问题:

当我尝试使用三个关联的基本子组件呈现示例布局组件时,页面不会呈现。一些调试揭示了以下问题:

RenderComponent(5)呈现布局视图。用于渲染布局中的第一个子组件,Html.RenderAction("RenderComponent", "Core", 1)在视图中被调用。更进一步,我发现实际上RenderComponent(5)是调用而不是RenderComponent(1)!!

这显然会导致布局视图渲染本身的无限循环。


为什么会这样?我该如何解决?我的分层组件架构是否与 ASP.Net MVC 不兼容?您将如何在 ASP.Net MVC 中构建这样的系统?

0 投票
4 回答
4983 浏览

asp.net-mvc - RenderAction 调用错误的动作方法

我正在为渲染操作而苦苦挣扎,问题是它在我的控制器上调用了错误的操作方法。

在我的“用户”控制器上,有两种称为编辑的操作方法,一种用于获取,一种用于发布请求:

在我看来,我将其称为 Renderaction 如下:

现在的问题是我想要呈现 GET 操作方法。但是(可能是因为模型还包含一个名为 ID 的属性?),Renderaction 改为调用我的 POST 操作方法。

这样做的正确方法是什么?我正在使用 ASP.NET MVC 3 RC 以防万一。

谢谢,

阿德里安

0 投票
4 回答
16610 浏览

asp.net-mvc-3 - Asp.Net MVC 3 - @Html.Action 不会呈现/返回任何 HTML

我今天一直在将一个相当新的项目从 ViewPages 转移到 Razor,而且一切似乎进展顺利。除了我试图使用 Html.Action 来呈现用户控件并且它不会呈现任何东西。

所以我有一个在 Home/Index.cshtml 中引用的 Shared/_Layout.cshtml 文件

Index.cshtml 有以下内容:

我已经在 BlogsController 中设置了陷阱,所以我知道这是被请求的。我还知道一个模型正在返回,LatestBlogsMainPanelWidget 正在被视图引擎找到,甚至正在运行一些虚拟的 Razor 语法代码:@{ var s = "hello"; }

但是这个文件中的纯 html 并没有进入浏览器。我也尝试过其他(以前工作的)部分,它们也不会出现(查看页面上的源代码确认它不存在)。

我也尝试过替换 @{ Html.RenderAction(...); } 没有成功。@Html.Action 两边的 HTML 都出现了,所以我知道 Index.cshtml 显示正确。

更奇怪的是 _Layout 文件也有 Html.Action 命令,而且它们看起来确实不错。

我真的不确定还要检查什么,或者如何确认管道正在获取 HTML。任何人都可以提供帮助吗?

谢谢!

0 投票
1 回答
402 浏览

c# - C# MVC.NET 嵌套 RenderAction 的

我希望有一个带有各种“小部件”的主页,这些“小部件”显示来自我网站中各种控制器的数据。我希望显示的小部件取决于经过身份验证的用户的角色。由于许多小部件将出现在多个视图上,我目前的方法是让每个小部件由一个视图表示。每个角色也将有自己的视图,它由多个 RenderAction 调用各种小部件视图组成。主页将调用 RenderAction 以显示经过身份验证的用户角色的适当视图。

问题:

1) 在我的主页上有多个嵌套的 RenderAction 调用是否存在任何性能问题?

2)还有其他我应该考虑的方法吗?

0 投票
5 回答
570 浏览

asp.net - MVC2 - 如何在每个页面上放置常用的 LOGIC 控件(如搜索/查找)?

我无法弄清楚如何执行以下操作:

在每个页面(或我想要的每个页面)上,我想放置一个通用控件小部件(例如 think - 包含文本框 + 按钮的搜索功能)。最好的方法是什么?谁处理提交按钮(假设它是一个提交按钮)?

即我的 ViewUserControl 是什么样的?它有表格吗?它使用jQuery onclick“”吗?它是否发布到主视图的操作方法,或者我可以将它重定向到另一个控制器/操作?

我尝试使用包含表单的“Search.ascx”的 RenderAction,并由我的 SearchController 处理......但在 SearchController 中,它然后尝试调用 RedirectToAction......我收到关于 RedirectActions 不允许的投诉儿童行动。

我对下一步该怎么做有点迷茫,所以非常欢迎提出建议!射线

0 投票
1 回答
151 浏览

c# - 有没有办法使用类似的东西在使用 RenderAction 呈现的部分视图中?

在我的 ASP.NET MVC 2 Web 应用程序中,我利用RenderAction在我称之为网站的“flash message”区域的地方显示 HTML。Flash 区域是指靠近顶部的突出显示区域,其中包含有关先前请求的消息,例如Hello <%: Html.DisplayTextFor(m => m.Username) %>用户登录时。

我正在处理的一条消息要复杂一些。它需要在响应中添加一段 Javascript 代码,但我想按照High Performance JavaScript书中的建议将script元素放在结束标记之前。</body>

在普通视图中,我使用<asp:Content ContentPlaceHolderID="FlashScriptElements" runat="server"><script> ... </script></asp:Content>script元素放置在页面底部。不幸的是,如果我在使用 呈现的部分视图中尝试相同的操作RenderAction,我会收到解析器错误“内容控件必须是内容页面中的顶级控件或引用母版页的嵌套母版页”。

有没有类似的东西<asp:Content>可以在部分视图中使用,它将内容插入到母版页的相应位置?