2
私は、Razor、C#、および.NET Framework 4.7を使用してASP.NET MVC 5アプリケーションを開発しています。条件付きで控えめな検証モード
モデルのプロパティ値に応じて、テーブルの入力フィールドを無効にしたいとします。私はjavascriptでこれを行いました:
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>
これは私が(それらのすべてがproductsTable
テーブル内にある)非表示にするフィールドに対して生成されたHTMLです。
<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'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); }
を発見したが、私はそれを使用する方法がわからないと、私はすべての完全な例を発見していない検索。
Iやった入力ファイルを表示することカミソリビューでこの条件:
@if (Model.LawId == 1)
{
<input name = "ChinaCodes" id = "ChinaCodes" class="upload" type="file">
}
私はフィールドごとに同じことをしなければならないか、私はそれが一度にすべてのフィールドに対してグローバルに行うことができますか?
あなたは条件付きの検証属性を使用する必要があり、例えば、[誰にでもできる](http://foolproof.codeplex.com/ )[RequiredIf] '属性を使用するか、独自の[ASP.NET MVC 3での検証の完全ガイド - 第2部](https://www.devtrends.co.uk/blog/the-完全ガイド - 検証 - in-asp.net-mvc-3-part-2) –
こんにちは、@StephenMuecke。あなたは私のガーディアンエンジェルコーディングです。 – VansFannel