gpt4 book ai didi

c# - MVC 路由问题如何设置所有 Controller 的默认操作?

转载 作者:行者123 更新时间:2023-11-30 15:51:39 25 4
gpt4 key购买 nike

我的 RouteConfig 是这样的:

 routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "GPTKish.Controllers" }
);

当我输入 ex 时:http://localhost:23594/News , 显示 News Controller 的 Index Action但是当我输入 http://localhost:23594/NewsImages , 得到 HTTP 错误 403.14 - 禁止!!!!并且不显示 NewsImages Controller 的索引操作!!!我的代码哪里错了?这是我的 newsImages Controller

public class NewsImagesController : Controller
{
private DatabaseContext db = new DatabaseContext();

// GET: NewsImages
public ActionResult Index(int selectedNewsid)
{

List<NewsImage> newsImages = db.NewsImages.Include(n => n.News).Where(c => c.NewsId == selectedNewsid).ToList();
ViewBag.NewsTitle = newsImages[1].News.Title;
return View(newsImages);
}

谢谢

最佳答案

这是因为 Index 需要一个参数:selectedNewsid。

http://localhost:23594/NewsImages?selectedNewsid=0或(如果使用 HttpGet 属性)http://localhost:23594/NewsImages/0应该解决。

两种选择:

1) 使 selectedNewsid 成为可选的并且(可选)添加一个 HttpGet 属性(由于参数)

[HttpGet("{selectedNewsid")]
public ActionResult Index(int selectedNewsid = 0)
{
if(selectedNewsid == 0)
{
//Show all news images
}else{
List<NewsImage> newsImages = db.NewsImages.Include(n => n.News).Where(c => c.NewsId == selectedNewsid).ToList();
ViewBag.NewsTitle = newsImages[1].News.Title;
return View(newsImages);
}
}

2)新建一个不带参数的默认 Action

public ActionResult Index()
{
return View();
}

关于c# - MVC 路由问题如何设置所有 Controller 的默认操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56666129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com