Asp.net mvc 使用模型方法创建共享视图

Asp.net mvc 使用模型方法创建共享视图,asp.net-mvc,roleprovider,Asp.net Mvc,Roleprovider,我想创建一个共享控件,根据登录用户的角色在其中生成标记。为了实现这一点,我需要在模型类中调用一个方法。在ASP.NETMVC中这样做是否正确?我听说我们应该严格区分模型和视图。 请提供帮助。模型和视图的分离程度应确保通信方向仅为一个方向。通常,视图将了解底层模型,但反过来就不知道了 这就是为什么ASP.NET MVC具有强类型视图的概念,其中视图可以强绑定到特定类型的模型 因此,我认为将您的视图耦合到模型类的成员没有任何问题。模型和视图的分离程度应确保通信的方向仅为一个方向。通常,视图将了解底层

我想创建一个共享控件,根据登录用户的角色在其中生成标记。为了实现这一点,我需要在模型类中调用一个方法。在ASP.NETMVC中这样做是否正确?我听说我们应该严格区分模型和视图。
请提供帮助。

模型和视图的分离程度应确保通信方向仅为一个方向。通常,视图将了解底层模型,但反过来就不知道了

这就是为什么ASP.NET MVC具有强类型视图的概念,其中视图可以强绑定到特定类型的模型


因此,我认为将您的视图耦合到模型类的成员没有任何问题。

模型和视图的分离程度应确保通信的方向仅为一个方向。通常,视图将了解底层模型,但反过来就不知道了

这就是为什么ASP.NET MVC具有强类型视图的概念,其中视图可以强绑定到特定类型的模型


因此,我认为将视图耦合到模型类的成员没有任何问题。

,而通过辅助扩展从模型中读取也没什么问题。这是创建大量标记所必需的吗?如果是的话,我会质疑这是否是最佳方法

<>你可以考虑使用“ASP:Login VIEW”并从这里呈现部分视图吗?不依赖viewstate的ASP.NET控件在MVC中工作良好

例如:

<asp:LoginView id="LoginView1" runat="server">
                <RoleGroups>
                    <asp:RoleGroup Roles="Admin">
                        <ContentTemplate>
                            <%= Html.RenderPartial("MyPartial"); %>
                        </ContentTemplate>
                    </asp:RoleGroup>
                </RoleGroups>
            </asp:LoginView>

通过助手扩展从您的模型中读取即可。这是创建大量标记所必需的吗?如果是的话,我会质疑这是否是最佳方法

<>你可以考虑使用“ASP:Login VIEW”并从这里呈现部分视图吗?不依赖viewstate的ASP.NET控件在MVC中工作良好

例如:

<asp:LoginView id="LoginView1" runat="server">
                <RoleGroups>
                    <asp:RoleGroup Roles="Admin">
                        <ContentTemplate>
                            <%= Html.RenderPartial("MyPartial"); %>
                        </ContentTemplate>
                    </asp:RoleGroup>
                </RoleGroups>
            </asp:LoginView>

在我看来,视图不应该知道角色应该看到什么。这是一个控制器功能。同样,模型不应该关心视图如何使用其信息

所以,我是这样设计的

视图要求提供信息。控制器应该知道用户是谁,以及他们应该看到什么。控制器要求模型为视图提供正确的内容


如果您可以设计系统,使其能够在没有模型或视图的情况下显示自己,那就太好了。

在我看来,视图不应该知道角色应该看到什么。这是一个控制器功能。同样,模型不应该关心视图如何使用其信息

所以,我是这样设计的

视图要求提供信息。控制器应该知道用户是谁,以及他们应该看到什么。控制器要求模型为视图提供正确的内容


如果您可以设计系统,使其能够在没有模型或视图的情况下显示自己,那就太好了。

在MVC Futures中,您还可以使用Html helper RenderAction,它允许您的视图调用和操作,然后在自己的标记范围内呈现该操作的结果

这对于做菜单之类的事情很有帮助,但这并不是严格意义上的MVC,而是非常实用的

但是使用的最佳方法取决于需要输出的html、需要输出的位置以及原因。如果你能告诉我们更多关于你需要呈现的Html和它的用途,那将是很好的,我们可以给你一些更好的帮助


但是有一件事是肯定的,模型不应该输出Html进行渲染。

在MVC Futures中,您还可以使用Html助手RenderAction,它允许您的视图调用和操作,然后在自己的标记范围内渲染该操作的结果

这对于做菜单之类的事情很有帮助,但这并不是严格意义上的MVC,而是非常实用的

但是使用的最佳方法取决于需要输出的html、需要输出的位置以及原因。如果你能告诉我们更多关于你需要呈现的Html和它的用途,那将是很好的,我们可以给你一些更好的帮助

但有一点是肯定的,模型不应该输出Html进行渲染