我正在开发MVC C#.net Core应用程序。代码仍在开发中。我正在尝试显示从TinyMce存储在SqlServer数据库中的图像,我的路线之一似乎在url中添加了额外的目录地址。因此,我认为这是一个路由问题,但我愿意接受其他想法。
我已经在网上搜索并阅读了microsoft文档,但似乎找不到正确的路线。
此操作方法正常工作。请注意,没有{id}参数。 在列表中正确显示图像。 在浏览器中单击查看图像时,将产生以下路线... 本地主机:44353 / images / users / MyImage.jpg
[Route("/[controller]/PostList")]
public IActionResult PostList(Guid tagId, Guid authorId, int numPerPage = 10)
{
ICollection<Post> posts;
string currentTag = string.Empty;
string currentAuthor = string.Empty;
if (tagId == Guid.Empty && authorId == Guid.Empty)
{
posts = _blogRepository.GetRecentPosts(numPerPage).ToList();
currentTag = "All posts";
currentAuthor = "All authors";
}
else if (!(tagId == Guid.Empty) && authorId == Guid.Empty)
{
Tag tag = _tagRepository.GetAllTags().FirstOrDefault(t => t.Id == tagId);
posts = _blogRepository.GetPostsByTag(tag).OrderBy(p => p.ModifiedDate).ToList();
currentTag = tag.Content;
currentAuthor = "All authors";
}
else if (!(authorId == Guid.Empty) && tagId == Guid.Empty)
{
Author author = _authorRepository.Authors.FirstOrDefault(a => a.Id == authorId);
posts = _blogRepository.GetPostsByAuthor(author).OrderBy(p => p.ModifiedDate).ToList();
currentTag = "All posts";
currentAuthor = author.AuthorName;
}
else
posts = _blogRepository.GetRecentPosts(numPerPage).ToList();
return View(new PostListViewModel
{
CurrentTag = currentTag,
CurrentAuthor = currentAuthor,
Posts = posts,
AllTags = _tagRepository.GetAllTags().ToList(),
AllAuthors = _authorRepository.Authors.ToList()
});
}
此Action方法不显示图像 在浏览器中单击查看图像时,将产生以下路线... 本地主机:44353 /博客/图像/用户/MyImage.jpg 添加{id}显然会改变路线... 我尝试了几种不同的路线都无济于事...
[Route("/[controller]/PostDetail/{id}")]
public IActionResult PostDetail(Guid id)
{
var post = _blogRepository.FindCurrentPost(id);
if (post == null)
return NotFound();
return View(new PostDetailViewModel() {
Post = post,
AllAuthors = _authorRepository.Authors.ToList(),
AllTags = _tagRepository.GetAllTags().ToList()
});
}
希望能够显示图像并具有正确的路线。
答案 0 :(得分:0)
我终于知道了!
我删除了所有阻碍PostDetail Route的路由,并添加了一个非常简单的路由以从URL中删除“ Blog”。我不知道为什么我必须删除它的详细信息,但可以将其保留在列表中(我怀疑我正在使用的.net core版本为2.0.9的错误,但是我真的没有知道。
这是从URL中删除控制器的路由(注意:只有在先删除我为控制器定义的大多数其他路由之后才能使用...)现在将显示图像。
[Route("PostDetail/{id}")]
public IActionResult PostDetail(Guid id)
{
var post = _blogRepository.FindCurrentPost(id);
if (post == null)
return NotFound();
return View(new PostDetailViewModel() {
Post = post,
AllAuthors = _authorRepository.Authors.ToList(),
AllTags = _tagRepository.GetAllTags().ToList()
});
}