首页 > 解决方案 > 使用 Asp.net c# 和 html 混合代码的问题

问题描述

我尝试在 asp.net 中使用下面的代码,但是 html 标签中存在错误,比如 and 并说它找不到开始标签。但是开始标签在第一个如果。错误在第 44 到 52 行之间。

@{
    string n = "";
    int j = 0;
    foreach (var item in Model.RelatedProduct)
    {
        if (item.ProductId != n)
            j = 1;
        else
            j = 0;            
        if(j==1)
        {
            <div class="modal fade" id="myModal" role="dialog">
                <div class="modal-dialog modal-dialog-centered " role="document">
                    <div class="modal-content">
                        <div class="modal-header">
                            <h5 class="modal-title">@item.CatalogDescription</h5>
                            <button class="close" type="button" data-dismiss="modal">
                                <span aria-hidden="true">&times;</span>
                            </button>
                        </div>
                        <div class="modal-body">
                            <table class="table table-hover">
                                <thead class="thead-dark">
                                    <tr>
                                        <td>Customer</td>
                                    </tr>
        }
        @if(j == 1 || j == 0)
        {
                                    <tr>
                                        <td>@item.CustomerName</td>
                                        <td>@item.Price</td>
                                    </tr>
        }
        @if(j==1) 
        { 
                            </table>
                        </div>
                        <div class="modal-footer">
                             <button class="btn" data-dismiss="modal">Cancel</button>
                        </div>
                     </div>
                  </div>
                </div>
        }
    }
}

我也尝试从 if 开头删除 @ 但错误没有删除。

标签: c#asp.netasp.net-mvc

解决方案


我已经看过你的代码,人们所做的代码混淆中似乎一个明显的错误是,在代码中多次放置@符号,虽然你可以在条件之前看到大括号if,但你不应该放一个@符号来指定代码,编译器认为它已经是代码而不是标记。看:

大括号问题

简单地说,只需从这些if条件中删除 @ 符号,看看错误是否仍然困扰您。

另外,我必须说您的 html 有点对齐不正确,并且您缺少一些结束标签,例如</thead>标签。


推荐阅读