带有 Class 作为参数的 Razor 页面处理程序
Razor Page Handler with Class as Arg
如何创建一个接受 class 作为参数的处理程序。这是基于mediatr example for Razor pages。在示例中,'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 错误。可以这样做吗?
Link 指向错误的处理程序,您有 OnGetEditAsync,其中 Edit 是处理程序的名称;试试这个:
<a asp-page="TestPage" asp-page-handler="Edit" asp-route-FirstId="abc" asp-route-SecondId="123">Test Link</a>
你可以试试这个
@{
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>
如何创建一个接受 class 作为参数的处理程序。这是基于mediatr example for Razor pages。在示例中,'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 错误。可以这样做吗?
Link 指向错误的处理程序,您有 OnGetEditAsync,其中 Edit 是处理程序的名称;试试这个:
<a asp-page="TestPage" asp-page-handler="Edit" asp-route-FirstId="abc" asp-route-SecondId="123">Test Link</a>
你可以试试这个
@{
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>