Database HTMLHelper中的数据库操作,可以吗?

Database HTMLHelper中的数据库操作,可以吗?,database,asp.net-mvc,partial-views,html-helper,Database,Asp.net Mvc,Partial Views,Html Helper,你好, 我有一个ASP.NET MVC 3网站,我需要构建一个图像墙,其中包含ID列表,然后基于此列表构建图像墙 imagewall将是一个局部视图 第一个想法是在当前ViewClass上放置一个列表,其中包含将要显示的图像的ID,但我不确定这是一个好的解决方案,尤其是如果此imagewall被移动到另一个parentView中 所以问题是。我可以在HTML助手中进行DB操作吗?什么是最佳实践 这个局部视图可能会被更改。首先为什么要这样做 我认为您应该从控制器操作返回一个列表,然后在视图中对其进

你好,

我有一个ASP.NET MVC 3网站,我需要构建一个图像墙,其中包含ID列表,然后基于此列表构建图像墙

imagewall将是一个局部视图

第一个想法是在当前ViewClass上放置一个列表,其中包含将要显示的图像的ID,但我不确定这是一个好的解决方案,尤其是如果此imagewall被移动到另一个parentView中

所以问题是。我可以在HTML助手中进行DB操作吗?什么是最佳实践


这个局部视图可能会被更改。

首先为什么要这样做

我认为您应该从控制器操作返回一个列表,然后在视图中对其进行迭代,如:

foreach(var image in @Model.Images)
{
    // output some HTML code here using each image file path...
    <img src="@image.Path" />
}
其中ImageWall是新的ImageWall
控制器,GetImages是
操作的名称


这将允许您在另一个控制器的视图中使用ImageWall控制器。

首先为什么要这样做

我认为您应该从控制器操作返回一个列表,然后在视图中对其进行迭代,如:

foreach(var image in @Model.Images)
{
    // output some HTML code here using each image file path...
    <img src="@image.Path" />
}
其中ImageWall是新的ImageWall
控制器,GetImages是
操作的名称


这将允许您在另一个控制器的视图中使用ImageWall控制器。

我的控制器操作已经有一个返回到视图的复杂ViewClass。如前所述,我曾考虑将图像列表放置在此ViewClass中,但这意味着如果将局部视图(imagewall)移动到另一个视图,我也必须将此列表包含在该ViewClass中。如果我要使用包将tempdata传输到视图中,我还必须在多个操作中执行此操作,这就是为什么我认为HTMLHelper是一个好方法。有了它,我就不必关心这个imagewall放在哪里了,它会自己处理的。你可以创建一个单独的
imagewall控制器和它的视图。然后,如果您需要将ImageWall从一个位置移动到另一个位置,您只需在您现在需要的位置调用部分视图。您的意思是我应该使用两个控制器和操作来显示带有部分ImageWall的页面?这是怎么回事?我是否可以声明,当使用此部分视图时,它将在ImagewallController上运行正确的操作?现在我只是在使用Render.Partial,有时我会将模型的一部分传递给这个部分视图,但这将是nace,以避免将此数据放置在模型视图上。很好,但这不会返回完整视图而不是部分视图吗?不。。。它将只渲染您告诉它要渲染的内容(GetImages视图是您定义要渲染的内容的地方)。它将把
GetImages
result附加到您调用它的当前视图中。我的控制器操作已经有一个复杂的ViewClass返回到视图中。如前所述,我曾考虑将图像列表放置在此ViewClass中,但这意味着如果将局部视图(imagewall)移动到另一个视图,我也必须将此列表包含在该ViewClass中。如果我要使用包将tempdata传输到视图中,我还必须在多个操作中执行此操作,这就是为什么我认为HTMLHelper是一个好方法。有了它,我就不必关心这个imagewall放在哪里了,它会自己处理的。你可以创建一个单独的
imagewall控制器和它的视图。然后,如果您需要将ImageWall从一个位置移动到另一个位置,您只需在您现在需要的位置调用部分视图。您的意思是我应该使用两个控制器和操作来显示带有部分ImageWall的页面?这是怎么回事?我是否可以声明,当使用此部分视图时,它将在ImagewallController上运行正确的操作?现在我只是在使用Render.Partial,有时我会将模型的一部分传递给这个部分视图,但这将是nace,以避免将此数据放置在模型视图上。很好,但这不会返回完整视图而不是部分视图吗?不。。。它将只渲染您告诉它要渲染的内容(GetImages视图是您定义要渲染的内容的地方)。它将把
GetImages
result附加到您调用它的当前视图中。是的,这是可能的,但是不,您不应该这样做