我遇到一个问题,即我的控制器中名为GiftCards的操作覆盖了实际的URL / View页面名称。
<input type="text" id="checking" />
我的网址变成了
public IActionResult SomeStupidName()
{
return ("Checkout");
}
虽然我希望它是
www.mywebsite.com/GiftCards/SomeStupidName
进一步的细节是,这是使用表单提交执行的,其中表单具有
www.mywebsite.com/GiftCards/Checkout
答案 0 :(得分:2)
您必须了解www.mywebsite.com/GiftCards/SomeStupidName
表示SomeStupidName
是控制器GiftCards
的操作,因此www.mywebsite.com/GiftCards/Checkout
表示Checkout
是控制器{{1}的操作但是在您的代码中,您将从GiftCards
View
返回GiftCards
而不是重定向到其他action
。假设我有行动名称action
。
Checkout
当我输入public IActionResult Checkout()
{
return View("Checkout");
}
时,它会返回视图Checkout
,所以现在我可以从以下任何其他操作重定向到操作:
www.mywebsite.com/GiftCards/Checkout
答案 1 :(得分:1)
您可以在Asp.Net Core中使用&#34;属性路由&#34; 。返回控制器中的正确视图。尝试此代码!!
[Route("GiftCards/Checkout")]
public IActionResult SomeStupidName()
{
return View("Checkout");
}
属性路由是一组属性,用于将操作直接映射到路径模板。我们可以提及&#34;()&#34; 在&#34; [路线(&#34;&#34;)]&#34; <内的重写网址/ em>属性。
有关Asp.net核心中属性路由的更多详细信息:click here