Asp.net core mvc 如何在razor页面中使用PageRemote

Asp.net core mvc 如何在razor页面中使用PageRemote,asp.net-core-mvc,razor-pages,Asp.net Core Mvc,Razor Pages,我的代码如下: public class Lib { public int ID { get; set; } [Required] [PageRemote(PageHandler = "IsKeyExists", HttpMethod = "Get")] public string Key { get; set; } } 在创建页面模型中: public async Task<IActionResult> OnGetIsKeyExist

我的代码如下:

public class Lib
{
    public int ID { get; set; }

    [Required]
    [PageRemote(PageHandler = "IsKeyExists", HttpMethod = "Get")]
    public string Key { get; set; }
  }
在创建页面模型中:

    public async Task<IActionResult> OnGetIsKeyExistsAsync(string key)
    {
        var query = _context.Lib.Any(l => l.Key == key);
        if (query)
        {
            return new JsonResult($"Key {key} exists");
        }

        return new JsonResult(true);
    }
我用PostMan进行测试,用Key修改参数名,一切正常

https://localhost:44377/Libs/Create?handler=IsKeyExists&Key=xx
我不想修改我的页面模型来绑定另一个字符串值,以及如何使它与Lib.Key一起工作


也许这个问题与远程页面无关,只是与razor页面或asp.net core有关。

Url生成参数的名称取决于您的输入名称

您的url将生成类似
https://localhost:44377/Libs/Create?handler=IsKeyExists&Lib.Key=xx
是默认情况下,
asp for
将生成名称:

<input asp-for="Lib.Key"  />
如果您不想更改处理程序,则需要指定如下名称:

public async Task<IActionResult> OnGetIsKeyExistsAsync(Lib Lib)
<input asp-for="Lib.Key" name="key" />


您的razor页面视图是什么样子的?非常感谢!我修改了OnGetIsKeyExistsAsync(Lib-Lib)函数,它运行良好。
public async Task<IActionResult> OnGetIsKeyExistsAsync(Lib Lib)
<input asp-for="Lib.Key" name="key" />