C# 使用HTML帮助程序没有可见的控件/输出

C# 使用HTML帮助程序没有可见的控件/输出,c#,html,asp.net-mvc,html-helper,C#,Html,Asp.net Mvc,Html Helper,我有以下不呈现任何控件的代码+HTML: 我试图使用HTML帮助程序在网页中放置控件,但这没有给我控件的输出 <div id="PaymentTypes" name="PaymentTypes" style="display: block"> <table width="730" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <%

我有以下不呈现任何控件的代码+HTML: 我试图使用HTML帮助程序在网页中放置控件,但这没有给我控件的输出

<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>

支付金额:

选择金额: 满满的 DD 数量 选择金额:

可能的问题是什么

这不会在页面上呈现标签:

<% Html.Label("Amount", "1000"); %>
  • 您可以拆分这些代码块,使逻辑位于
    块内,而呈现语句位于
    块内。请注意,您需要删除Html.Label表达式末尾的分号。例如,上面的代码如下所示:

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

    • 保留现有视图并替换:

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

    希望有帮助

    HtmlHelpers不应该调用“您没有包括
    IsMultipleOption
    的值,或者
    SinglePaymentTypeAttribute
    的值。如果
    SinglePaymentTypeAttribute==“部分”
    ,或者如果它不是“完整”或“DD”的话“那么它不会添加任何内容。你的意思是,当我有一个块同时使用代码逻辑和渲染控件时,我必须添加一个额外的方法:
    <%
    ...
    Html.Label("LblRdoFull","Full"); %>
    
    <%
    ...
    Writer.Write(Html.Label("LblRdoFull","Full")); %>