ASP.NET Core编写我的URL

时间:2017-03-09 07:21:41

标签: asp.net asp.net-mvc asp.net-core asp.net-core-mvc

我遇到一个问题,即我的控制器中名为GiftCards的操作覆盖了实际的URL / View页面名称。

<input type="text" id="checking" />

我的网址变成了

public IActionResult SomeStupidName()
{
      return ("Checkout");
}

虽然我希望它是

www.mywebsite.com/GiftCards/SomeStupidName

进一步的细节是,这是使用表单提交执行的,其中表单具有

www.mywebsite.com/GiftCards/Checkout

2 个答案:

答案 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