首页 > 解决方案 > 尝试通过提交 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等于“未定义”。

标签: javascriptc#asp.net

解决方案


使用[FromQuery]属性。

public async Task<ActionResult> MyMethod([FromQuery]string dateRange)
{
    ...
}

推荐阅读