代码之家  ›  专栏  ›  技术社区  ›  VansFannel

条件非侵入性验证模式

  •  2
  • VansFannel  · 技术社区  · 9 年前

    我正在开发一个ASP。NET MVC 5应用程序,带有Razor、C#和。NET Framework 4.7。

    if ($('#LawId').val() === "1") { 
        $('#productsTable').attr("disabled", true);
        $('.addLevelButton').attr("disabled", true);
        $('.deleteLevelButton').attr("disabled", true);
    }
    

    <td>
        <div class="group">
            @Html.TextBoxFor(m => m.Products[index].Name, new { @class = "productClass" })<br />
            <div class="mensajeError">@Html.ValidationMessageFor(m => m.Products[index].Name)</div>
        </div>
    </td>
    <td>
        <div class="group">
            @Html.TextBoxFor(m => m.Products[index].Description, new { @class = "productClass", @style = "max-width:none" })<br />
            <div class="mensajeError">@Html.ValidationMessageFor(m => m.Products[index].Description)</div>
        </div>
    </td>
    <td>
        <div class="group">
            @Html.TextBoxFor(m => m.Products[index].Comment, new { @class = "productClass" })<br />
            <div class="mensajeError">@Html.ValidationMessageFor(m => m.Products[index].Comment)</div>
        </div>
    </td>
    <td>
        <div class="group">
            @Html.CheckBox(string.Format("Delete_{0}", index))
        </div>
    </td>
    

    这是为我想要隐藏的字段生成的HTML(所有字段都在里面) productsTable 表)。

    <div class="group">
        <input data-val="true" data-val-number="The field Id must be a number." data-val-required="The Id field is required." id="Products_0__Id" name="Products[0].Id" type="hidden" value="0" />
        <input data-val="true" data-val-number="The field Law must be a number." data-val-required="The Law field is required." id="Products_0__Law" name="Products[0].Law" type="hidden" value="1" />
        <input data-val="true" data-val-length="Must be 14 characters long" data-val-length-max="14" data-val-length-min="14" data-val-required="Product&#39;s code is requiered" id="Products_0__ProductCode" name="Products[0].ProductCode" type="number" value="" />
        <div class="mensajeError"><span class="field-validation-valid" data-valmsg-for="Products[0].ProductCode" data-valmsg-replace="true"></span></div>
    </div>
    

    搜索我找到了助手 @{ Html.EnableClientValidation(false); }

    我在Razor视图中执行了此操作,以显示输入文件:

    @if (Model.LawId == 1)
    {
        <input name = "ChinaCodes" id = "ChinaCodes" class="upload" type="file">
    }
    

    1 回复  |  直到 8 年前
        1
  •  1
  •   VansFannel    9 年前

    @body 章节:

    @section Body
    {
        @if (Model.LawId == 1)
        {
            Html.EnableClientValidation(false);
            Html.EnableUnobtrusiveJavaScript(false);
        }
    
        [ ... ]
    }