gpt4 book ai didi

asp.net-mvc-3 - Action 方法 MVC 中的多态性

转载 作者:行者123 更新时间:2023-12-01 12:04:19 24 4
gpt4 key购买 nike

我有两个 Action :

// Action 一公共(public) FileResult 下载(字符串文件夹,字符串文件名){ ... }

// Action 2public FileResult Download(int id, string fileName) { ... }

当我尝试下载以下 URL 时: http://localhost:54630/Downloads/Download/15?fileName=sharedhostinggsg.pdf

错误发生:当前对 Controller 类型“DownloadsController”上的操作“下载”的请求在以下操作方法之间不明确:SextaIgreja.Web.Controllers.DownloadsController 类型的 System.Web.Mvc.FileResult Download(Int32)SextaIgreja.Web.Controllers.DownloadsController 类型的 System.Web.Mvc.FileResult Download(System.String, System.String)

我怎样才能制作它们:

网址:../Downloads/Download/15?fileName=sharedhostinggsg.pdf Action : Action 2

网址:../Downloads?folder=Documentos$fileName=xx.docx Action : Action 1

我试图限制我的路线,但没有成功:

routes.MapRoute(
"Download", // Route name
"Downloads/Download/{id}", // URL with parameters
new { controller = "Downloads", action = "Download" }, // Parameter defaults
new { id = @"\d+" }
);

我在互联网上搜索了几个链接,但我不明白如何解决我的问题。 This ,例如,未找到 RequireRequestValue 属性。我不知道它是哪个命名空间。

最佳答案

您提到的 RequireRequestValue 是他们创建的自定义类(来自 Example posted ),因此您不会在任何 Microsoft 命名空间中找到它。

您将看到的类继承自 ActionMethodSelectorAttribute。此属性类可用于帮助过滤操作,就像 AcceptVerbs 属性一样。因此,在该链接的示例中,它们返回 true 或 false 取决于路由参数中是否指定了值。

根据您发布的示例,创建一个名为 RequireRequestValueAttribute 的类。然后像这样装饰你的两个下载操作方法:

[RequireRequestValue("id")]
public FileResult Download(int id, string fileName) { ... }

[RequireRequestValue("folder")]
public FileResult Download(string folder, string fileName) { ... }

关于asp.net-mvc-3 - Action 方法 MVC 中的多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6642227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com