首页 > 解决方案 > 如何循环

  • 在视野中
  • 问题描述

    我想在我的视图(cshtml)上循环li标签,我尝试了“for”和“foreach”循环,我调试了它,它做了循环,但它不会显示循环的li标签。为什么它不会显示循环的李标签?

    我将模型从控制器传递到视图,模型内部有一些错误消息。我已经对其进行了调试,它确实携带了这些错误消息,然后我使用“for”和“foreach”循环(都尝试过)一一循环了错误消息,但是在视图中找不到错误消息。

    这是我的观点(cshtml):

                     @model Models.RootObject
                <html xmlns="http://www.w3.org/1999/xhtml">
    
                <head>
                    <title></title>
                </head>
    
                <body>
                    <input type="file" accept="application/pdf" id="fileAccept"/>
                    <button type="submit" id="buttonSubmit">Submit</button>
                    <ul id="showResultHere">
                        @{
                            if (Model != null)
                            {
                                for(int i=0; i<Model.Result.ErrorMessages.Count ; i++)
                                {
                                    <li>Line @Model.Result.ErrorMessages[i].ToString()</li>
                                }
                            }
                        }
                    </ul>
                </body>
                </html>
    
                <script src="/assets/scripts/libs/jquery/jquery-1.11.0.min.js"></script>
                <script>
    
                    $('#buttonSubmit').click(function (e) {
                        e.preventDefault();
                        var formData = new FormData();
                        var file = document.getElementById("fileAccept").files[0];
                        formData.append("fileRequest", file);
                        formData.append("captcha", $("#captcha").val());
    
                        $.ajax({
                            url: "@Url.Action("Index", "Upload")",
                            type: "POST",
                            data: formData,
                            contentType: false,
                            processData: false,
                            success: function (result) {
                                alert("All done!");
                            }
                            , error: function (err, textStatus, errorThrown) {
                                alert(errorThrown);
                            }
                        });
    
                    });
    
                </script>
    

    从 UploadController 返回要查看的模型:

                if (isValid != true)
                {
                    for (int i = 0; i < validationResults.Count; i++)
                    {
                        result.ErrorMessages.Add(validationResults.ElementAt(i).ErrorMessage);
                    }
                    rootObject.Result = result;
                    return View(rootObject);
    
                    //return Json(validationResults);
                }
    

    我希望视图能够显示带有模型错误消息的 li 标签。

    标签: c#asp.netajax

    解决方案


    尝试像这样使用 foreach:

    @foreach(var errorMessage on Result.ErrorMessages)
    {
        <li> Line @errorMessage.ToString() </li>
    }
    

    我不确定......但如果它不起作用,请尝试在视图顶部添加:

    @using System
    

    推荐阅读