【问题标题】:Url action in cshtml doesnt render the correct URL it goes to the another action in the same control, when inspecting elements shows the correct href当检查元素显示正确的 href 时,cshtml 中的 URL 操作不会呈现正确的 URL,它会转到同一控件中的另一个操作
【发布时间】:2021-07-14 02:27:47
【问题描述】:

这是我的锚标记,其中“SubmitCart”是操作,但 URL 转到“GetItemsInCart”,这是同一控制器中的另一个操作。即使在浏览器中,如果我尝试转到 /SubmitCart,它也会将我重定向到“GetItemsInCart”

<a href='@Url.Action("SubmitCart","ShoppingCart")' class="btn btn-primary">Checkout and View Receipt</a>

购物车控制器:

[Route("SubmitCart")]
public IActionResult SubmitCart()
{
    return RedirectToAction("ViewReceipt");
}

[Route("GetItemsInCart")]
public IActionResult GetItemsInCart()
{
    return View("Cart", products);
}

我的默认路由设置:

app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "default",
        template: "{controller=Home}/{action=Index}/{id?}");
});

我是asp.net core的新手,请帮忙

【问题讨论】:

  • 请您添加您的Full Controller Class
  • 您好,请问还有什么可以帮助您的吗?

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


【解决方案1】:

如果您使用Asp.net Core MVC 而不是Asp.net Web API,只需删除[Route("SubmitCart")] annotation,它将按预期工作。

注意:请记住,当您像这样使用 [Route("SubmitCart")] 路由时,它将覆盖您的 routes.MapRoute 配置 结果你得到了错误。

像这样:

控制器:

public class HomeController : Controller
{
  
   //[Route("SubmitCart")]
    public IActionResult SubmitCart()
    {
        return RedirectToAction("Index");
    }

 //  [Route("SubmitCart")]
    public IActionResult GetItemsInCart()
    {
        return View();
    }
    
  }

客户端:

<h2>GetItemsInCart</h2>

<a href='@Url.Action("SubmitCart","Home")' class="btn btn-primary">Checkout and View Receipt</a>
<a asp-area="" asp-controller="Home" class="btn btn-primary" asp-action="SubmitCart">Checkout and View Receipt</a>

注意:您为Asp.net MVC 配置的routes.MapRoute 似乎没问题。我附上了另一种HTML,你可以点击控制器。

输出:我在 URL 和 Button 上都按预期工作了。看这里

希望对您有所帮助。如果您仍然遇到此问题,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 2017-09-21
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    相关资源
    最近更新 更多