作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要从我的 mvc Controller 到 Razor 页面创建一个字符串类型的链接。
Asp.Net 核心 2.2。
我使用 IUrlHelper:
int number = 4;
string callbackUrl = Url.Page(
"/Test/Name",
pageHandler: null,
values: new { number },
protocol: Request.Scheme);
最佳答案
我无法重现您的问题。我在 MVC Controller 中有此代码,它与生成问题中显示的 URL 的代码完全相同:
public IActionResult Test()
{
int number = 4;
string callbackUrl = Url.Page(
"/Test/Name",
pageHandler: null,
values: new { number },
protocol: Request.Scheme);
return Json(new
{
callbackUrl
});
}
/Pages/Test/Name.cshtml
上有一个 Razor 页面。内容如下:
@page "{number}"
Hello @RouteData.Values["number"]!
number
的规范, 匹配
Url.Page
中给出的路由参数在 Controller 内调用。
http://localhost:5000/Home/Test
,然后我得到以下响应,这正是我期望生成的:
{"callbackUrl":"http://localhost:5000/Test/Name/4"}
null
相反,可能是路由值
number
与您的 Razor 页面中的参数不匹配。在这种情况下,路由找不到匹配的 Razor 页面。
@page
没有参数),来自 MVC 操作的响应应如下所示,其中路由值作为查询参数提供:
{"callbackUrl":"http://localhost:5000/Test/Name?number=4"}
LinkGenerator
. LinkGenerator 通常会为您提供与 UrlHelper 相同的体验,但不需要环境设置,因此无论您身在何处,都可以以相同的方式使用它。
关于c# - 如何生成从 Controller 到 razorpages 的链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54734370/
我是一名优秀的程序员,十分优秀!