为什么我在HTML5中收到有关tr元素的错误消息?

时间:2013-09-10 04:18:29

标签: razor

我改为HTML 5,突然间我得到了一个我以前没有的错误。错误消息是:

  

验证(HTML5):开头和之间不允许使用文本   关闭元素tr'的标签。

我没有看到任何纯文本,当我尝试将@:更改为@或删除它时,我收到一条消息,显示“没有开始标记的结束标记”。我没有看到我在这里输入任何文字的地方。请帮忙。

<tr id="listTableRow">          
@{
    int cnt = 0;
    List<SchoolIn.ViewModels.EnrolledCourseData> courses = ViewBag.Courses;         
    List<String> dayofclass = ViewBag.classDay;
    List<String> theListOfTeachers = ViewBag.teacherList;
    List<String> teacher = ViewBag.instructors;
    List<SchoolIn.Models.Enrollment> LoDays = ViewBag.lDays;
    List<String> listofinstructors = ViewBag.listOfInstructors;
    List<int> coursesIds = new List<int>();
    foreach (var course in courses.Select((x, i) => new { Data = x, Index = i }))
    {
        int currentIndex = course.Index;
        String selectedday = "";
        String selectedteacher = "";

        if (cnt++ % 4 == 0)
        {
            @:  </tr> <tr>
        }

嗨CoderOll,谢谢你的帮助。您的建议是第一个标签的解决方案,但我粘贴在下面的第二个标签似乎仍然认为即使我有下面的文字也可以看到。我研究Razor显式代码块,并找到有关包含模糊代码语句的信息,如...

  @foreach(var item in order.Items){
Var itemName-(GetOrderItemName<string>(item)):
 <li>@itemName</li>…

但我找不到Razor可能会误认为和之间标记的任何代码。我甚至试过替换&lt;和&gt;与&lt;和&gt;但那不行。您是否有任何想法可以将代码的哪一部分作为文本进行交互?

感谢您的帮助。

 <tr>

    }

      @: <td id="days" >  

      <input type="checkbox"  id="checkbox" name="selectedCourses" value="@course.Data.CourseID"  @(Html.Raw(course.Data.Assigned ? "checked=\"checked\"" : ""))/> 

               @course.Data.Title  @: <br />

    if (dayofclass != null && course.Index < dayofclass.Count())
    {


        String sellectedDay = dayofclass.ElementAt(course.Index);                                           
        selectedday = sellectedDay;



        if (theListOfTeachers != null && course.Index < theListOfTeachers.Count())
        {


            String selectedTeacher = theListOfTeachers.ElementAt(course.Index);

            selectedteacher = selectedTeacher;
        }


    }
    if (selectedday == "")
    { 

         @Html.DropDownList("searchString", Model.WeekDays.Select(s => new SelectListItem {      Text = s.ToString(), Value = s.ToString(), Selected = s.ToString().Equals("Day") }), new { @class = "daylists" }) 
           @Html.DropDownList("instructorString", listofinstructors.Select(tch => new  SelectListItem { Text = tch.ToString(), Value = tch.ToString(), Selected = tch.ToString().Equals("Pick One") }), new { @class = "teacherlists" })


    }


    else


        if (Model.Enrollments != null)
        {




                 @Html.DropDownList("searchString", Model.Enrollments.FirstOrDefault().WeekDays.Select(s => new SelectListItem { Text = s.ToString(), Value = s.ToString(), Selected = s.ToString().Equals(selectedday) }), new { @class = "daylists" }) 


                                @Html.DropDownList("instructorString", listofinstructors.Select(tch => new SelectListItem { Text = tch.ToString(), Value = tch.ToString(), Selected = tch.ToString().Equals(selectedteacher) }), new { @class = "teacherlists" })


        }





                                 @:</td> 


}





                                @:</tr> 

2 个答案:

答案 0 :(得分:0)

您好我猜(对不起我没有使用剃须刀,但我有一些HTML经验)。

 if (cnt++ % 4 == 0)
    {
        @:  </tr> <tr>  <<-- maybe this should be <tr> </tr> 
    }

您是否尝试过更改或删除此行? 干杯

答案 1 :(得分:0)

消息

  

验证(HTML5):开头和之间不允许使用文本   关闭元素tr'的标签。

只是意味着您错过了TDTH元素。由于TR表示“表行”,而行只包含一组列,因此需要TDTH元素来包装文本。

您没有显示其余的代码,但您可能有类似的内容:

@foreach (var course in courses)
{
    if (cnt++ % 4 == 0)
    {
        @:  </tr> <tr>
    }

    @course.Data <-- Outputting text after 'TR' without enclosing it in a TD/TH
}

尝试类似:

<td>
    @course.Data
</td>