问题标签 [actionmethod]

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 投票
5 回答
1955 浏览

.net - 你用 ASP.NET MVC Action 方法做了什么聪明的事

ASP.NET MVC 控制器操作方法主要用于处理“业务”操作,但它可以用于更多。

我认为看看人们创造了哪些创造性的、有用的东西可能对其他人实用或有用的行为会很有趣。

这是我的贡献:

Javascript 文件连接器 -减少 http 请求的数量:

映射到它的路线:

从您的母版页中引用它:

请注意,我已经为输出设置了缓存,因此如果您要更改 JS 并刷新页面,您可能需要禁用缓存!

我只是需要回来弄清楚如何压缩它。

*您不应该使用 VaryByParam="None" ,因为这会导致发送 Vary 标头,从而导致浏览器返回并检查新版本。如果您真的需要更改您的 js 内容,那么您的用户将不得不等待 5 分钟!

0 投票
3 回答
732 浏览

.net - 如何传递代表一个操作方法参数的两个不同的查询字符串参数?

我有一个如下的操作方法

因此,此操作方法返回一些数据,这些数据可以格式化为Version 1Version 2(无论输出是什么......只要知道它们在示意图上是不同的)。

因此,当用户想要调用访问此资源时,他们会执行以下操作:

没什么太难的。

他们也可以这样做...

但是,是否有可能使用户可以使用查询字符串参数versionv

这将填充 ActionMethod 中的版本参数。可能的?

0 投票
3 回答
6019 浏览

post - 处理 2 个按钮在单个视图/表单中提交操作 - ASP.NET MVC 2 RTM

我有一个视图,用户可以在其中将文件上传到服务器。

在这个视图中,我还有 2 个按钮:一个用于上传文件,另一个用于下载最后导入的文件。

在我的控制器中,我创建了 2 个操作方法:导入和导出。

我如何设法将每个按钮单击重定向到控制器中的正确操作方法?

我试过 Html.ActionLink:

Html.ActionLink 没有做到这一点。操作链接将我带到正确的操作方法,但它们正在生成一个 GET 请求。这样 Request.Files.Count = 0。

我需要一个 POST 请求。

注意:最有趣的部分是上传工作正常,但突然停止工作。我已经看到有些人对 FileUpload 任务有同样的问题,其中 Request.Files 总是空的。我认为它是空的,因为你需要一个帖子到服务器。不是吗?

0 投票
5 回答
32436 浏览

c# - ASP.NET MVC - 带有来自 URL 的附加参数的 POST 操作方法

使用 ASP.net MVC 是否可以将表单发布到控制器操作,其中包含不在表单中但来自 URL 的参数?

例如

GroupController 中的 Action 方法:

路线:

发布网址:

在此示例中,表单被发布到不同的控制器,模型具有正确的值,但其他参数的默认值为 0。

我期望的行为是 ModelBinder 会看到我有两个与给定路由匹配的参数,并以与 GET 操作相同的方式将当前值 1 和 42 分配给参数。

不支持这种行为,还是我遗漏了什么?

编辑:需要明确的是Show,控制器视图上Employee的表单包含一个发布到不同控制器的表单。我们可以称之为Group

表单操作 URL 如下所示

表格声明如下

在尝试了许多不同的重载后,Html.BeginForm我发现只有当表单操作 URL 与浏览器地址栏中的当前 URL 匹配时才会映射参数。

因此,如果我导航到 URL /Groups/Create/1/42,我将有一个新表单。如果我随后提交表单,则 URL 路由值将传递给 POST 操作。

0 投票
3 回答
1413 浏览

c# - ASP.NET MVC AuthorizeAttribute 将值传递给 ActionMethod?

我只是 ASP.NET MVC 的新手,不确定如何以“正确的方式”完成某项任务。

本质上,我将登录的 userId 存储在 HttpContext.User.Identity 中,并编写了一个EnhancedAuthorizeAttribute来执行一些自定义授权。

在覆盖的OnAuthorization方法中,我的域模型命中数据库以确保当前用户 id 可以访问传入的 routeValue "BatchCode"。原型是:

如果用户无法访问 ReviewGroup 并且 OnAuthorization 拒绝访问,它将返回 null。

现在,我知道装饰操作方法只有在 OnAuthorization 通过时才会执行,但我不想再次访问数据库以再次获取 ReviewGroup。

我现在正在考虑将 ReviewGroup 存储在控制器中HttpContext.Items["reviewGroup"]并从控制器中访问它。

这是一个可行的解决方案,还是我走错了路?

谢谢!

0 投票
1 回答
513 浏览

asp.net-mvc-2 - ASP.NET MVC URL 路由问题

我定义了如下路线:

和处理请求匹配的操作方法:

和表单将参数发送到操作方法:

现在单击提交并将值发送到操作方法后,所有路由值都已更新,但 url 值仍等于第一次发送参数。例如,如果我发送了第一次请求,例如http://localhost/search/web/google和下一次 http://localhost/search/web/yahoo,则传递给操作方法的查询参数是 yahoo 但之后的 url回发仍然是 http://localhost/search/web/google

有人可以帮我吗?;)

0 投票
1 回答
1062 浏览

asp.net-mvc - 如何将描述附加到控制器(ASP.net MVC)中的每个 ActionMethod?

所以最近,我想出了一种动态构建导航栏菜单的方法,其中控制器(及其索引操作方法)将列在每个页面顶部的水平栏中(通过 Site.Master),但也基于用户分配的角色。列出的每个控制器还将列出(在垂直下拉列表中)用户可用的 ActionMethods。

有关我为 ASP.NET MVC 创建扩展控制器类而编写的代码,请参见此处,该类解决了上述问题。

我意识到我还想为每个控制器自动创建一个默认索引页面,其中列出了所有可用的 ActionMethod 以及每个 ActionMethod 的简短 1 或 2 句描述,但正在思考如何将描述附加到 ActionMethod。

我的假设是我需要做三件事:

(1)创建我自己的属性,比如说,描述并装饰每个控制器中的每个动作方法,如下所示:

(2) 在我的基类 (ExtController) 中创建一个公共 ActionResult Index()方法,每个继承 ExtController 的类都将使用该方法来显示可供该用户使用的 ActionMethod 及其描述的列表。

(3) 在 Views/Shared 中创建一个 Index.aspx 视图来构建这样一个页面。

这是一个明智的做法吗?有一个更好的方法吗?

0 投票
2 回答
2454 浏览

c# - 从动作方法返回最具体或最通用的类​​型会更好吗?

两者的好处或坏处是什么?

0 投票
3 回答
4962 浏览

asp.net - 控制器方法中参数的默认值覆盖所有内容

你好,我刚开始学习mvc2,参数页面的默认值有问题(你可以看下面的方法)。

无论我在 URL 中输入什么,它始终为 0。例如这个

h.ttp://localhost:52634/Products/List/2

应该显示第 2 页,但在调试模式下,页面参数为 0,所以我总是在我的视图中获取列表的第一页。

当您开始一个新的 mvc2 项目时,我正在使用全局 asax 中的预定义标准路由。

我错过了什么吗?

0 投票
2 回答
346 浏览

c# - 为什么当我将“”传递给 RenderAction 时会填充此视图模型?

我正在尝试实现一个存在于系统中每个页面上的 Widget 控件,这将允许用户在每个页面上都有基本的搜索和目录功能。这是下面定义的选项卡控件,其中<ul>当前选定的选项卡由 in 的值确定,Model.CurrentTab而我要显示的相应内容(基本上,使其可见)也由该值确定。

我想同时加载两者的原因SearchDirectory页面不必根据单击的选项卡来请求内容。我希望这一切都立即可用。

我遇到的问题是,如果CurrentTab包含值“目录”,这意味着(我假设)Html.RenderAction("SearchBox"...应该传入一个空字符串。但是当它到达 action 方法时,传入的 View ModelSearchBox包含一个值而不是""

我不明白为什么会这样。即使我将一个空字符串传递给SearchBox,视图模型仍然包含一个值。有人可以解释发生了什么吗?我应该以不同的方式做这件事吗?

更新:

两者都DirectoryViewModel包含SearchViewModel一个名为Search