gpt4 book ai didi

asp.net-mvc-2 - html.Action asp.net mvc

转载 作者:行者123 更新时间:2023-12-04 06:46:17 24 4
gpt4 key购买 nike

我在一个网站 (Asp.net mvc) 上工作,在那里我有多个部分 View 。其中一个 View 是用户信息,然后在下面很少有其他 View 说用户的书,给定书中的文章等。这就是我的 Controller 的样子。

public class UserController : Controller
{

public ActionResult UserInfo(long userid)
{
var model.User = LoadUser(userId);
return View(model);
}

public ActionResult Books(long userId)
{
var model.User = LoadUser(userId);
model.Books = LoadBooks(userId);

return View(model);
}

public ActionResult Articles(long bookId)
{
var model.User = LoadUserByBookId(bookId);
model.Book = LoadBook(bookId);
model.Articles= LoadArticles(bookId);

return View(model);
}

}

我为 UserInfo、Books 和 Articles 创建了三个部分 View ,并从给定的 View 传递数据。现在您可以看到每种方法都变得更加复杂。我正在阅读有关 Html.Action 帮助程序的信息,它可以加载单个部分 View 。但是正如您所看到的,我需要将一些数据从 Html.Action 助手传递给方法,以便它可以相应地加载数据,例如加载用户信息,我需要传递 userId。

我怎样才能使用这个或任何其他更好的方法来实现这一点。帮助将不胜感激。

问候
帕明德

最佳答案

在我看来,Lance 提供了此解决方案的最后一步。显然,如果 Html.RenderAction正如他所描述的那样使用必须有另一个已经被调用的 Controller 操作,因为我们现在在更大的 View 中渲染操作(部分 View )。

我认为您需要的是一个 ViewModel,它需要填充在主 Controller 操作中

public class PageInfo
{
public long UserId { get; set; }
public long BookId { get; set; }
}

与主要 Action
....
public ActionResult MainAction()
{
// you probably have some logic here that gets the actual userid and bookid

PageInfo theModel = new PageInfo(){UserId = 39894, BookId = 3};
return View(theModel);
}

然后在 MainAction 中调用 RenderAction 时页
<%: Html.RenderAction("Articles", new { bookId = Model.BookId }) %>
<%: Html.RenderAction("UserInfo", new { userId = Model.UserId }) %>
<%: Html.RenderAction("Books", new { userId = Model.UserId }) %>

关于asp.net-mvc-2 - html.Action asp.net mvc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3732648/

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