データを入力するためのフォームを作成したASP.NETコア2.0アプリケーションで作業しています。検証が機能するかどうかを確認しながら、私のビューモデルの必須プロパティーに表示される検証メッセージがないことに気付きました。asp.netコア2.0フォーム検証中にメッセージが表示されない
必要な入力が空で保存を押すと続行できないため、入力は必須ですが表示されるメッセージはありません。
フォームビューのビューモデルには、フォームの一部を動的に変更する必要があるため、プロパティとしてのビューモデルのリストがあります。
これは私のメインのビューモデルである:ここで
public class SettingsViewModel
{
public List<KeyValueViewModel> KeyValuePairs { get; set; }
public string Description { get; set; }
}
はここKeyValueViewModel
public class KeyValueViewModel
{
public int Id { get; set; }
[Display(Name = "Key")]
[Required(ErrorMessage = "Key is required")]
public string Key { get; set; }
[Display(Name = "Value")]
[Required(ErrorMessage = "Value is required")]
public string Value { get; set; }
public Guid SettingFileId { get; set; }
public Dictionary<Guid, string> SettingFileDropdownOptions { get; set; }
}
あるメインビューされています
@model SettingsViewModel
<form asp-action="Create" id="SettingsForm">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="row">
<div class="col-md-12">
<label asp-for="@Model.KeyValuePairs[0].Key" class="control-label col-md-3 no-left-padding"></label>
<label asp-for="@Model.KeyValuePairs[0].Value" class="control-label col-md-offset-1 no-left-padding"></label>
</div>
</div>
@for (var i = 0; i < Model.KeyValuePairs.Count; i++)
{
var keyValuePair = Model.KeyValuePairs[i];
keyValuePair.Id = i;
<div id="KeyValuePairsContainer">
@Html.Partial("_settingKeyValue", keyValuePair)
</div>
}
<div class="form-group col-md-12 no-left-padding">
<label asp-for="Description" class="control-label"></label>
<textarea asp-for="Description" class="form-control" ></textarea>
<span asp-validation-for="Description" class="text-danger"></span>
</div>
<div class="form-group col-md-12 no-left-padding">
<input type="submit" value="Opslaan" class="btn btn-primary" id="Submit" />
<a href="@Url.Action("Index", "Home")" class="btn btn-default" id="Cancel">Annuleren</a>
</div>
</form>
そして、ここでレンダリングされる部分図:
@model KeyValueViewModel
<div class="form-group col-md-4 no-left-padding">
<input asp-for="@Model.Key" class="form-control col-md-3" id="[email protected]" name="KeyValuePairs[@Model.Id].Key" required="required"/>
<span asp-validation-for="@Model.Key" class="text-danger"></span>
</div>
<div class="form-group col-md-4 no-left-padding">
<input asp-for="@Model.Value" class="form-control col-md-3" id="[email protected]" name="KeyValuePairs[@Model.Id].Value" required="required" />
<span asp-validation-for="@Model.Value" class="text-danger"></span>
</div>
キーと値のプロパティの検証メッセージは、必要なときに表示されません。私たちは、必要なタグにメッセージを追加することによって、SettingsViewModelのDescriptionプロパティをテストしました。これはうまくいきました。
メインビューに表示されるKeyValueViewModelの検証メッセージを取得するにはどうすればよいですか?それは
である必要があります。部分ビューの中に 'jquery.validate.js'を含めようとしましたか?私のメインビューで – Manoj
Iは標準@sectionスクリプト有する{@ を{Html.RenderPartialAsync(「_ ValidationScriptsPartial」)待つ;}} jquery.valide.jsライブラリ – Jeroen
は部分図のdoesnに同じコードを追加含ま コード – Jeroen