Asp.net mvc 3 MVC显示和编辑的视图相同

Asp.net mvc 3 MVC显示和编辑的视图相同,asp.net-mvc-3,Asp.net Mvc 3,我有一个部分视图用于编辑弹出对话框中的人员详细信息,但他们也希望有“显示”模式,该模式禁用视图中的所有可编辑文本框、下拉列表框和链接,有人能告诉我实现这一点有多容易(不使用javascript)您可以使用带条件的相同视图禁用编辑器,但这很快就会变得一团糟。更好的方法是为可编辑视图创建一个单独的cshtml文件,并在调用view或RenderPartial时指定适当的视图名称。这意味着我必须使用其他css属性创建完全相同的标记,如disabled=“disabled”或readonly=“true

我有一个部分视图用于编辑弹出对话框中的人员详细信息,但他们也希望有“显示”模式,该模式禁用视图中的所有可编辑文本框、下拉列表框和链接,有人能告诉我实现这一点有多容易(不使用javascript)

您可以使用带条件的相同视图禁用编辑器,但这很快就会变得一团糟。更好的方法是为可编辑视图创建一个单独的cshtml文件,并在调用view或RenderPartial时指定适当的视图名称。

这意味着我必须使用其他css属性创建完全相同的标记,如disabled=“disabled”或readonly=“true”,这就是我目前正在做的。我问这个问题的原因是因为我最近收到一个请求,要求更改这种视图(我们在应用程序中有很多)。我正在寻找一种更好的方法来实现它。你应该为只读视图使用显示模板,为可写视图(例如表单)使用编辑器模板。您不应该手动添加禁用的类(除非这是您想要的实际视觉效果),这样做与可编辑内容的文本框和无法更改的位的文本相比看起来很糟糕。如果这是您的客户真正想要的,那么使用条件句可能是合理的(尽管我会使用语法
class='@(Model.IsEditable?“enabled”):“disabled”)“
。即使这样,使用单独的模板也可能会更好-这不是明显的重复,并且当客户端意识到组合版本看起来有多糟糕时,可以很容易地进行改进。对于:RPM1984,我有很多下拉列表框,显示/编辑模板的效果不太好