Asp.net mvc “MVC中的路由”;指定具有前导'/'&引用;
我有一个名为Submit的razor页面,它给了我一个Asp.net mvc “MVC中的路由”;指定具有前导'/'&引用;,asp.net-mvc,asp.net-core,routes,asp.net-core-mvc,asp.net-mvc-routing,Asp.net Mvc,Asp.net Core,Routes,Asp.net Core Mvc,Asp.net Mvc Routing,我有一个名为Submit的razor页面,它给了我一个值不能为null。参数名称:viewData错误,因此我删除了代码顶部的“post-directed”页面。我现在的问题是,当我加载页面时,我发现以下错误: InvalidOperationException:相对页面路径“索引”只能在执行页面时使用。指定具有前导“/”的根相对路径,以在页面外部生成URL。如果您使用的是LinkGenerator,则必须提供当前HttpContext才能使用相对页面。> 我希望我的页面的URL为https:/
值不能为null。参数名称:viewData
错误,因此我删除了代码顶部的“post-directed”页面。我现在的问题是,当我加载页面时,我发现以下错误:
InvalidOperationException:相对页面路径“索引”只能在执行页面时使用。指定具有前导“/”的根相对路径,以在页面外部生成URL。如果您使用的是LinkGenerator,则必须提供当前HttpContext才能使用相对页面。>
我希望我的页面的URL为https://localhost:44369/Submit
我该怎么做?以下是我在Startup.cs文件中的路由:
app.UseMvc(routes =>
{
routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
});
出现错误的原因是语法不正确。在其中一个Razor视图中,您可能有一个锚定标记,它可能看起来像:
<a asp-page="Index">Index</a>
索引
该语法(不带正斜杠/)用于Razor页面。在Razor视图中,以正斜杠作为页面名称的前缀:
<a asp-page="/Index">Index</a>
索引
如果其他一切都是正确的,你应该能够浏览https://localhost:44369/Submit 并且它应该显示提交页面中所写的内容。出现错误的原因是语法不正确。在其中一个Razor视图中,您可能有一个锚定标记,它可能看起来像:
<a asp-page="Index">Index</a>
索引
该语法(不带正斜杠/)用于Razor页面。在Razor视图中,以正斜杠作为页面名称的前缀:
<a asp-page="/Index">Index</a>
索引
如果其他一切都是正确的,你应该能够浏览https://localhost:44369/Submit 它应该显示提交页面中所写的内容,您可以在MVC项目中使用Razor Pages
asp操作。
用于MVC
1> 使用标记asp操作
但不使用asp页面
重定向
<a asp-action="Submit" class="btn btn-success form-control">Submit</a>
测试:
结果的屏幕截图:
有些文章可能会帮助您了解Razor页面和MVC。
您可以在MVC项目中使用Razor Pagesasp操作。
用于MVC
1> 使用标记asp操作
但不使用asp页面
重定向
<a asp-action="Submit" class="btn btn-success form-control">Submit</a>
测试:
结果的屏幕截图:
有些文章可能会帮助您了解Razor页面和MVC。
谢谢,我在一个div中隐藏了一个asp页面,这是导致错误的原因。我改变了它,它工作了,我不敢相信我之前没有看到/做过这件事。我花了令人沮丧的时间试图修复它。谢谢你,我有一个asp页面隐藏在一个div的深处,这是导致错误的原因。我改变了它,它成功了,我不敢相信我之前没有看到/做过这件事。我花了令人沮丧的时间试图修复它。