5

これをグーグルで検索しましたが、必要なものが見つかりませんでした。私が見つけた既存のソリューションはすべて、「可視性」をfalseに設定するように言っています。私のアプリケーションは単に DIV を「隠し」、その場所に大きな空白を残す PDF をレンダリングするため、これはうまくいかないようです。

代わりに、HTML をまったくレンダリングしたくありません。たとえば、PHP では、これは次のように簡単に実行できます。

<?php if ($showDiv == true) { ?>
<div>Lorem ipsum dolor sit amet</div>
<?php } ?>

ASP.NET MVC では、ViewBag 変数を渡すだけで同じことができます。

ASP.NET (C#) でこれを解決するにはどうすればよいですか?

4

6 に答える 6

13
<% if ( showDiv ) { %>
<div></div>
<% } %>

showDiv は、コード ビハインドで保護されたプロパティになります。

于 2013-01-23T20:57:53.787 に答える
9

aspx ファイル内

<div runat="server" id="hideableDiv">Lorem ipsum dolor sit amet</div>

そしてコードビハインドで

...
hideableDiv.Visible = false;
...
于 2013-01-23T20:53:51.677 に答える
4

<asp:panel>HTML としてレンダリングするコントロールを使用します<div>。その後、可視性を切り替えることができます。が false に設定されている場合visible、asp.net はコンテンツをレンダリングしません。

    <asp:Panel id="MyPanel" runat="server">
    ...
    </asp:Panel>

   MyPanel.Visible = false;
于 2013-01-23T20:58:25.057 に答える
2

はい、ASP PlaceHolder コントロール内に div を配置できます。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.placeholder(v=vs.71).aspx

<asp:PlaceHolder id="PlaceHolder1" runat="server">
<div></div>
</asp:PlaceHolder>

次に、分離コードで次のように設定できます。

PlaceHolder1.Visible = true;
于 2013-01-23T21:02:31.863 に答える
2

HTML を生成しない別のソリューション:

HTML :

<asp:Literal ID ="litDiv" runat="server">       
</asp:Literal>

コードビハインド:

bool showDiv = true;
if (showDiv)
    this.litDiv.Text = "<div>Lorem ipsum dolor sit amet</div>";
于 2013-01-23T21:24:10.453 に答える
2

マークアップ

<div runat="server" id="myPdfDiv">Lorem ipsum dolor sit amet</div>

コードビハインド

myPdfDiv.Visible = false;
myPdfDiv.InnerHTML = "";
于 2013-01-23T21:01:03.473 に答える