0

如何创建一个将类作为 arg 的处理程序。这是基于Razor pages 的 mediatr 示例。在示例中,“Query”对象只有一个“Id”属性。我想要 2 个属性,例如:

public async Task OnGetEditAsync(Query query)
{
    Data = await _mediator.Send(query);
}

public class Query
{
    public string FirstId { get; set; }
    public string SecondId { get; set; }
}

当我尝试在我的 cshtml 中创建这样的路由时:

<a asp-page="/TestPage" asp-route-FirstId="abc" asp-route-SecondId="123">Test Link</a>

我收到 400 错误。是否有可能做到这一点?

4

2 回答 2

1

链接指向错误的处理程序,您有 OnGet Edit Async 其中Edit是处理程序的名称;试试这个:

<a asp-page="TestPage" asp-page-handler="Edit" asp-route-FirstId="abc" asp-route-SecondId="123">Test Link</a>
于 2018-10-27T18:25:24.247 回答
0

你可以试试这个

@{
var test= new Dictionary<string, string>
            {
                { "FirstId ", "something" },
                { "SecondId ", "something else" }
            };
}

<a asp-page="/TestPage"
   asp-all-route-data="test">Test Link</a>

会生成<a href="/TestPage?FirstId=something&SecondId=something else">Test Link</a>

于 2018-10-27T18:30:26.300 回答