Обработчик бритвенных страниц с классом как Arg - PullRequest
0 голосов
/ 27 октября 2018

Как я могу создать обработчик, который принимает класс в качестве аргумента.Это основано на примере mediatr для страниц Razor .В этом примере объект 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.Возможно ли это сделать?

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Вы можете попробовать это

@{
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>

0 голосов
/ 27 октября 2018

Ссылка указывает на неправильный обработчик, у вас OnGet Edit Async, где Edit - имя обработчика;попробуйте это:

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