【发布时间】:2021-12-07 00:10:44
【问题描述】:
我正在为学校开发一个简单的网站应用程序,但我遇到了导航问题。
我在这个项目中使用 Visual Studio 2019。
我正在尝试从Views/Home/Index 导航到Views/Product/List,但一直无法导航(404 错误)。
这里是_Layout:
<nav class="navbar navbar-expand-md navbar-dark bg-primary">
<a class="navbar-brand" href="/">SportsPro</a>
<button class="navbar-toggler" type="button"
data-toggle="collapse" data-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false"
aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<nav class="collapse navbar-collapse" id="navbarSupportedContent">
<div class="navbar-nav mr-auto">
<a class="nav-item nav-link active" asp-controller="Home" asp-action="Index">Home</a>
<a class="nav-item nav-link active" asp-controller="Product" asp-action="List">Products</a>
<a class="nav-item nav-link active" asp-controller="Technician" asp-action="List">Technicians</a>
<a class="nav-item nav-link active" asp-controller="Customer" asp-action="List">Customers</a>
<a class="nav-item nav-link active" asp-controller="Incident" asp-action="List">Incidents</a>
<a class="nav-item nav-link active" asp-controller="Registration" asp-action="GetCustomer">Registrations</a>
</div>
<div class="navbar-nav navbar-right">
<a class="nav-item nav-link active" asp-controller="Home" asp-action="About">About</a>
</div>
</nav>
</nav>
查看Views/Product/List:
@model Product
@{
ViewData["Title"] = "Products";
}
<h1>Product Manager</h1>
<form>...
HomeController:
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using SportsPro.Models;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
namespace SportsPro.Controllers
{
public class HomeController : Controller
{
private SportsProContext context { get; set; }
public HomeController(SportsProContext ctx)
{
context = ctx;
}
public IActionResult Index()
{
return View();
}
public IActionResult About()
{
return View();
}
public IActionResult Privacy()
{
return View();
}
....
}
}
ProductController:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using SportsPro.Models;
namespace SportsPro.Controllers
{
public class ProductController : Controller
{
private SportsProContext context { get; set; }
public ProductController(SportsProContext ctx)
{
context = ctx;
}
[HttpGet]
public IActionResult Add()
{
ViewBag.Action = "Add";
ViewBag.ProductCode = context.Products.OrderBy(p => p.Name).ToList();
return View("Edit", new Product());
}
[HttpGet]
public IActionResult Edit(int id)
{
ViewBag.Action = "Edit";
ViewBag.ProductCode = context.Products.OrderBy(p => p.Name).ToList();
var product = context.Products.Find(id);
return View(product);
}
[HttpPost]
public IActionResult Edit(Product product)
{
if (ModelState.IsValid)
{
if (product.ProductID == 0)
context.Products.Add(product);
else
context.Products.Update(product);
context.SaveChanges();
return RedirectToAction("List", "Product");
}
else
{
ViewBag.Action = (product.ProductID == 0) ? "Add" : "Edit";
ViewBag.ProductCode = context.Products.OrderBy(p => p.Name).ToList();
return View(product);
}
}
[HttpGet]
public IActionResult Delete(int id)
{
var product = context.Products.Find(id);
return View(product);
}
[HttpPost]
public IActionResult Delete(Product product)
{
context.Products.Remove(product);
context.SaveChanges();
return RedirectToAction("List", "Product");
}
}
}
还有其他代码示例可以帮助解决我的问题吗?我觉得我的问题在于我的ProductController。
【问题讨论】:
-
你是如何导航的?您的 LIst 操作在哪里?
-
这就是我卡住的地方 - 试图弄清楚如何在 ProductController 中实现 List,但我尝试了很多功能都没有成功。在我的学习经历阶段,我觉得我在泥泞中跋涉。所有来回、侧身和颠倒的呼唤有时会让我感到困惑。
标签: asp.net-mvc asp.net-core controller navigation visual-studio-2019