如何从javascript提示符设置asp路由变量?

如何从javascript提示符设置asp路由变量?,javascript,asp.net-core-mvc,Javascript,Asp.net Core Mvc,在my_Layout.cshtml页面中,我有几个菜单元素,例如 <a class="dropdown-item" asp-controller="CsvReports" asp-action="MyAction" asp-route-currentYear="2017" asp-route-nextYear="2018">Accounting Report</a> 会计报告 如您所见,asp route currentYear和asp route nextYea

在my_Layout.cshtml页面中,我有几个菜单元素,例如

  <a class="dropdown-item" asp-controller="CsvReports" asp-action="MyAction" asp-route-currentYear="2017" asp-route-nextYear="2018">Accounting Report</a>
会计报告

如您所见,asp route currentYear和asp route nextYear是硬编码的。这些值被传递给控制器。但是否可以通过javascript提示符等方式从用户处获取这些值?由于这些链接位于我的布局页面中,因此可以在用户所在的任何位置单击,因此我希望避免为每个链接创建视图

不可能。路由属性在客户端得到任何东西之前就在服务器端处理。JavaScript在客户端运行,在服务器运行很久之后。@Chris Pratt非常感谢您。难道你不知道有什么替代方法可以做到这一点(我的意思是通过javascript提示符从用户那里获取数据,并在没有单独视图的情况下将其传递给控制器)?不,因为HTTP在基本层面上不是这样工作的。您有一个请求-响应周期。客户端请求页面,服务器响应,就完成了。客户机想要的任何其他事情都必须通过一个新的请求发生,从而产生另一个新的响应。你可以在事后用JS来改变链接,但那是janky。更可能的情况是,在这种情况下,您应该有一个表单,而不是一个链接,并将这些值提交给服务器。这可能会有所帮助