【问题标题】:Routing in ASP.NET CORE Razor Pages with search parameters使用搜索参数在 ASP.NET CORE Razor 页面中路由
【发布时间】:2021-04-16 22:02:45
【问题描述】:

如何处理带有如下搜索字符串的剃须刀页面中的路由: https://localhost:5000/link?searchParam1=daniel&searchParam2=olu&Keyword=keyword。 在 Razor 页面中,您可以在 razor.chshtml 文件的顶部添加所需的路由,如下所示:

@page "/preferedroute"
@model Index
@{

}

如何使用上面的搜索字符串执行此操作。它有多个参数。如何将其转换为首选路线,以便其他页面可以访问它。我有一个提交到页面的表单。

<form class="form-inline" id="form" action="preferedroute">
<input id="searchParam1 value="dan">
 <input id="searchParam2 value="olu">
 <input id="keyword value="keyword">
</form> 

当我将此表单提交到页面时,它会像这样提交:

https://localhost:5000/link?searchParam1=daniel&searchParam2=olu&Keyword=keyword

但我需要它像这样提交: https://localhost:5000/link/searchParam1/daniel/searchParam2/olu/Keyword=keyword

现在的问题是我在共享的 _layout.cshtml 文件中有这个表单。所以我不能像这样在表单中使用标签助手(asp-for),因为它没有页面模型:

  <form class="form-inline" id="form" action="preferedroute">
    <input asp-for="searchParam1" value="dan" >
     <input asp-for="searchParam2 value="olu">
     <input asp-for="keyword value="keyword">
    </form> 

当表单无法使用标签助手时,如何完成所需的结果?

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 编辑了问题

标签: c# asp.net asp.net-core razor-pages


【解决方案1】:

如何使用如下搜索字符串处理 razor 页面中的路由:https://localhost:5000/link?searchParam1=daniel&searchParam2=olu&Keyword=keyword

可以参考下面的代码sn-p来绑定和处理搜索词。

public class LinkModel : PageModel
{
    [BindProperty(SupportsGet = true)]
    public SearchTerms searchTerms { get; set; }
    public void OnGet()
    {
        var searchParams = searchTerms;

        //...
        //code logic here
        //...
    }
}

班级SearchTerms

public class SearchTerms
{
    public string searchParam1 { get; set; }
    public string searchParam2 { get; set; }
    public string keyword { get; set; }
}

测试结果

【讨论】:

  • 这是一半。我也希望加入友好的网址
  • 您可以将您的问题和需求进一步澄清,以便我们更好地理解。
  • How do I accomplish the required result when the form cannot use tag helpers? 嗨@DanielOluwadare,如果您想将用户输入作为路线数据而不是查询字符串传递,您可以在提交表单之前尝试在客户端动态更新action 属性.
猜你喜欢
  • 2019-05-22
  • 2020-05-06
  • 2020-04-03
  • 2018-07-07
  • 1970-01-01
  • 2021-04-13
  • 2020-05-06
  • 2018-11-14
  • 1970-01-01
相关资源
最近更新 更多