В asp.Net запись кода в теге управления приводит к ошибке компиляции

Привет, это действительно странно !!

Но посмотрите на следующий asp-код:

    <div runat="server" id="MainDiv">
      <%foreach (string str in new string[]{"First#", "Second#"})
          { %>
            <div id="<%=str.Replace("#","div") %>">
            </div>
        <%} %>
    </div>

теперь, если вы поместите этот код на любую веб-страницу (и не беспокойтесь о морали этого кода, я сделал это только для того, чтобы показать идею) вы получите эту ошибку:

Сообщение об ошибке компилятора: CS1518: Ожидаемый класс, делегат, перечисление, интерфейс или структура

Конечно, ошибка не имеет ничего общего с реальной проблемой, я искал код, который был созданный asp.net и выяснил следующее:

     private void @__RenderMainDiv(System.Web.UI.HtmlTextWriter @__w, System.Web.UI.Control parameterContainer)
    {
        @__w.Write("\r\n        ");

        #line 20 "blabla\blabla\Default.aspx"
        foreach (string str in new string[] { "First#", "Second#" })
        {

            #line default
            #line hidden
            @__w.Write("\r\n        <div id=\"");

            #line 22 "blabla\blabla\Default.aspx"
            @__w.Write(str.Replace("#", "div"));


            #line default
            #line hidden
            @__w.Write("\">\r\n        ");
     }

Это код, который был сгенерирован из страницы asp, и это метод, предназначенный для отображения нашего div (MainDiv), я обнаружил, что отсутствует скобка «}», который закрывает метод или (цикл for).

теперь задача состоит из трех частей:
1- сначала у вас должен быть элемент управления сервером (в нашей ситуации это MainDiv), и я не уверен, что это только тег div.
2- элемент управления HTML внутри элемента управления сервером и код внутри него с использованием двойных кавычек (например,

6
задан Nour Sabouny 25 March 2012 в 05:48
поделиться