繁体   English   中英

使用HTML帮助器没有可见的控件/输出

[英]No Visible controls/output with HTML helpers

我有以下代码+无法呈现任何控件的HTML:我试图使用HTML Helpers将控件放置在网页中,但这没有提供任何控件输出。

<div id="PaymentTypes" name="PaymentTypes" style="display: block">
  <table width="730" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td>
        <%
          if(Model.PayCompanyDTO.IsMultipleOption==false)
          {
            switch (Model.SinglePaymentTypeAttribute)
            {
              case ("Full"): %>            
                <p><asp:Label ID="lblFull" Visible="true" runat="server">Amount to pay:</asp:Label></p>
                <%Html.Label("lblFull", "1000");
                break;

              case("Partial"):%>
                <% break;%>

              <%case("DD"):%>

                <label id="DDLPay" title="Payment Amounts">Choose Amount: </label>
                <% Html.DropDownList("AmountListDDL",Model.AmountList);
                break;

              default:
                break;                                     
             }
           }
           else
           {
             if(Model.PayCompanyDTO.AllPaymentOptions.Contains("Full"))
             {
               Html.Label("LblRdoFull","Full");%>
                 <input type="radio" name="rdoPay" id="RadioFull" value="Full" title="Amount to Pay" onclick="PaymentTypeChanged()" />  Full

             <%  }

             if(Model.PayCompanyDTO.AllPaymentOptions.Contains("DD"))
             {
               Html.Label("LblRdoDD","Choose Amount");%>
               <input type="radio" name="rdoPay" id="RadioDD" value="DD" onclick="PaymentTypeChanged()" /> DD
             <% }
           }%>
         </td>                                       
       </tr>                                    
     </table>
   </div>

   <div id="DivFull" name="DivFull" style="display:none">
     <% Html.Label("Amount", "1000");%> Amount
   </div>

   <div id="DivDD" name="DivDD" style="display:none">
     Choose Amount:
     <%   Html.DropDownList("AmountListDDL", Model.AmountList);%>
   </div>

可能是什么问题?

这不会在页面上显示标签:

<% Html.Label("Amount", "1000"); %>

符合以下条件的任何地方:

<%= Html.Label("Amount", "1000") %>
<%: Html.Label("Amount", "1000") %>
<% Writer.Write(Html.Label("Amount", "1000")); %>

区别在于<% ... %>仅执行代码(不向页面中渲染任何内容),而<%= ... %><%: ... %>则有效地渲染表达式的结果调用Writer.Write为您服务。 还有之间的细微差别<%=<%:当你使用的不是特别重要的,你需要知道的,以后会自动HTML编码内容Html.佣工像Html.Label )。 看到这个问题

为了呈现您的控件:

  • 您需要像这样更新代码(将逻辑和渲染语句混合到单个<% ... %>块中):

     <% ... if(Model.PayCompanyDTO.AllPaymentOptions.Contains("Full")) { Html.Label("LblRdoFull","Full");%> 
  • 您可以拆分这些代码块,因此逻辑位于<% ... %>块内,而呈现语句位于<%: ... %> )块内。 请注意,您需要在Html.Label表达式的末尾删除分号。 例如,上面的代码如下所示:

     <% ... if(Model.PayCompanyDTO.AllPaymentOptions.Contains("Full")) { %> <%: Html.Label("LblRdoFull","Full") %> 

或者:

  • 保持视图不变,并替换:

     <% ... Html.Label("LblRdoFull","Full"); %> 
  •  <% ... Writer.Write(Html.Label("LblRdoFull","Full")); %> 

希望有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM