javascript - 尝试通过提交 URL 来触发 ASP.NET 方法插入“未定义”参数
问题描述
以下 URL 触发要运行的 C# ASP.NET 方法:
https://example.org/MyController/MyMethod?dateRange=Last%20Month
这是方法头:
public async Task<ActionResult> MyMethod(string dateRange)
{
...
}
问题是,当我在 的第一行设置断点时MyMethod
,我看到dateRange
变量设置为“未定义”。我在这里想念什么?
更新
我正在添加更多信息。感谢您一直以来的帮助!
这是当用户按下 UI 上的按钮时调用的 JS 函数:
function PressButton() {
var dateRange = $('#date-range-header').val();
var urlValue = "@Url.Action("MyMethod", "MyController")" + "?dateRange=" + encodeURIComponent(dateRange);
alert(urlValue);
window.open(urlValue, "_self");
}
但是,警报显示以下内容非常奇怪:/MyController/MyMethod?dateRange=Last%20Month
,它具有正确编码的变量“上个月”值dateRange
。然而在 C# 方法中,dateRange
等于“未定义”。
解决方案
使用[FromQuery]
属性。
public async Task<ActionResult> MyMethod([FromQuery]string dateRange)
{
...
}
推荐阅读
- c++ - 使用 googletest 在类型参数化测试中识别使用的基类
- python - 尝试转置矩阵时遇到“索引超出范围”
- javascript - 更新 owl Carousel 的物品数量
- clearcase - 如何对 clearcase 文件的所有版本进行文本搜索?
- java - 在不同的 Spock 测试中重用 Spring 应用程序上下文
- javascript - 不断检查日期是否过去
- node.js - 使用 mocha、node 进行单元测试
- bash - 在 bash 中使用超时与 exec
- spring - 使用 WebClient 将 Spring Webflux 应用程序中收到的请求标头传播到下游服务
- authentication - 如何使用 Azure AD 对应用程序进行身份验证