简单的问题:声明和使用变量的难度

时间:2010-06-16 11:52:00

标签: asp.net-mvc

以下代码有什么问题:我收到错误信息

  

错误1;预期

    <%if (Model.ReferenceFields != null)
          {%>
            <%int count = 1; %>

            <%foreach (var referenceName in Model.ReferenceFields)
            {%>
             <%var value = "value"; %>
             <%count++; %>
             <%value = value + count.ToString(); %>
            <tr>
                <td><input type="hidden" name="Tests.Index" value='<%value%>' /></td>
                <td><input type="text" name="Tests['<%value%>'].Value"/></td>
                <td><input type="button" value= "Add" /></td></tr>
            <%}
               %>
         <%}
        %>

1 个答案:

答案 0 :(得分:2)

基本问题是这样的行

<input type="hidden" name="Tests.Index" value='<%value%>' />

所以你想要将值的内容写入html,但那不是这样做的。它应该是

<input type="hidden" name="Tests.Index" value='<% Response.Write(value); %>' />

或Response.Write的快捷方式是&lt;%= so

<input type="hidden" name="Tests.Index" value='<%= value %>' />

ASP101 - Writing Your First ASP.NET Page

另一个问题是,代码的格式化,坦率地说是丑陋的,而且当你试图阅读它时,你会让自己努力工作。试试这个。

<%
if (Model.ReferenceFields != null)
{
    int count = 1; 
    foreach (var referenceName in Model.ReferenceFields)
    {
        var value = "value";
        count++;
        value = value + count.ToString(); 
        %>
        <tr>
        <td><input type="hidden" name="Tests.Index" value='<%= value %>' /></td>
        <td><input type="text" name="Tests['<%= value %>'].Value"/></td>
        <td><input type="button" value= "Add" /></td></tr>
        <%
    }
}
%>