gpt4 book ai didi

c# - MVC 从不同的 Controller 调用 View

转载 作者:IT王子 更新时间:2023-10-29 04:40:44 25 4
gpt4 key购买 nike

我的项目结构是这样的:

  • Controller /ArticlesController.cs
  • Controllers/CommentsController.cs
  • Views/Articles/Read.aspx

Read.aspx 接受一个参数 say “output”,它是文章的详细信息及其评论,从 ArticlesController.cs

传递

现在我想写然后读评论::write() & Read() funct in CommentsController.cs

为了阅读带有评论的文章,​​我想通过从 CommentsController 传递输出参数来从 CommentsController.cs 调用 Views/Articles/Read.aspx。 CS

我该怎么做?

更新

代码在这里:

public class CommentsController : AppController
{
public ActionResult write()
{
//some code
commentRepository.Add(comment);
commentRepository.Save();

//works fine till here, Data saved in db
return RedirectToAction("Read", new { article = comment.article_id });
}

public ActionResult Read(int article)
{
ArticleRepository ar = new ArticleRepository();
var output = ar.Find(article);

//Now I want to redirect to Articles/Read.aspx with output parameter.
return View("Articles/Read", new { article = comment.article_id });
}
}

public class ArticlesController : AppController
{
public ActionResult Read(int article)
{
var output = articleRepository.Find(article);

//This Displays article data in Articles/Read.aspx
return View(output);
}
}

最佳答案

如果您想返回属于另一个 Controller 的 View ,要直接回答您的问题,您只需指定 View 的名称及其文件夹名称即可。

public class CommentsController : Controller
{
public ActionResult Index()
{
return View("../Articles/Index", model );
}
}

public class ArticlesController : Controller
{
public ActionResult Index()
{
return View();
}
}

此外,您正在谈论在另一个 Controller 中使用一个 Controller 的读写方法。我认为您应该通过模型直接访问这些方法,而不是调用另一个 Controller ,因为另一个 Controller 可能会返回 html。

关于c# - MVC 从不同的 Controller 调用 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11772072/

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