ASP.NET MVC - 在模型不可用时隐藏面板

时间:2010-11-26 03:19:26

标签: asp.net-mvc-2 model null

我有标准搜索方案:用户输入搜索参数并单击搜索按钮 - 结果显示在下面的面板中。我想要做的是根据搜索结果是否可用来控制面板的可见性。我尝试按如下方式对我的面板进行编码,但是我在运行时遇到了解析错误。

<asp:Panel ID="ResponsePanel" Visible="<%= Model != null %>" runat="server">
    ...
</asp:Panel>

我得到的解析错误是:

Cannot create an object of type 'System.Boolean' from its string representation
'<%= Model != null %>' for the 'Visible' property.

如何根据型号的可用性切换面板?

1 个答案:

答案 0 :(得分:3)

正如我在评论中所说,你不应该在你的asp.net应用程序中使用<asp:panel>

而是构建局部视图(ascx)

<% if(! Model.HasValue){ %>
    <%: Html.Partial("WhatWouldGoInYourPanel") %>
<% } %>

然后在您的部分视图中,如果模型为空,您可以放置​​要显示的所有“内容”。

您可以将部分放在两个地方之一。如果共享,则将其放在Views/Shared文件夹中。如果它特定于Controller,则将其放在Views/[ControllerName]文件夹中。

注意:请原谅我的C#...我不是那么好。