asp.net mvc在同一文件夹中的另一个控制器

时间:2014-01-22 14:26:07

标签: javascript asp.net-mvc controller

我有一个文件夹'Report',它包含ReportController。

现在我想将AgreementController添加到同一个文件夹中。

来自javascript我有一个代码,运行'下载'动作(下载文件)。

当我从javascript运行时 - 报告/下载/ id ='5'一切都很好。

当我从javascript运行时 - 报告/协议/下载/ id ='5'一切都很糟糕。

如何从协议控制器运行“下载”操作? 我不想要一个文件夹 - 一个控制器结构。

我认为只有哪些方面可以帮助我?

2 个答案:

答案 0 :(得分:1)

根据路线:

url: "{controller}/{action}/{id}"

您的代码是:

Report/Agreement/Download/id='5' 

所以在你的情况下:

 Controller= Report
 action=  Agreement 
 Id= Download.

这就是你收到错误的原因

您需要从通话结束中删除报告使用此:

Agreement/Download/id='5'

答案 1 :(得分:0)

如果您在同一个视图页面而不是外部js文件中编写js, ,您可以在ajax调用文件方法中使用mvc url.action来调用相应的控制器和动作方法如下所述

<强> syantax:   url:'@ Url.Action(“ActionMethodName”,“ControllerName”,new {Parameters})'

在你的情况下,它会是这样的:

  1. 调用报表控制器的下载方法

    url:'@ Url.Action(“下载”,“报告”,新{id =“价值”})'

  2. 调用协议控制器的下载方法

    url:'@ Url.Action(“下载”,“协议”,新{id =“价值”})'

  3. 如果您使用的是外部js文件,那么它将如下所示

    1. url:serverbaeurl +“/报告/下载?id =”+“值”
    2. url:serverbaeurl +“/ Agreement / Download?id =”+“Value”

      (此处serverbaseurl将是网站的域名)

    3. (您必须根据需要添加其他ajax选项)