この問題は非常に奇妙です。私は mvc 3 を初めて使用するため、細部を見逃している可能性があります...
部分ビューには、メイン ビューとは異なるモデルがあります (この場合は問題ではないと思います)。ビューにいくつかの Validation-helper 呼び出しを追加しました。私が何をしても、それらはページに表示されません。
フレームワーク ソースのデバッグを有効にしました。HTML が生成され、"出力" に書き込まれていることがわかります。それでも、最終的にレンダリングされたページには表示されません。理由がわかりません。
私の部分的な見解では:
@model ModelsDTO.Domain.GridRowDTO
@Html.ValidationSummary()
@Html.TextBox("Kalla")
@Html.ValidationMessage("Kalla")
レンダリングされるかどうかを確認するためだけにテキストボックスがあります。します。
私のコントローラーコード(ハードコードされたメッセージ、それを機能させるためだけに):
[HttpPost]
public ActionResult SaveGridRow(GridRowDTO rad)
{
List<string> valideringsFel = _dagboksanteckning.SaveDagbokObjekt(rad);
ModelState.AddModelError("Kalla", "Källan felaktig");
return PartialView("_DagbokGrid", rad);
}
モデル:
public class GridRowDTO
{
public string Kronika { get; set; }
public string Ok { get; set; }
public string Datum { get; set; }
public string Tid { get; set; }
public string Kalla { get; set; }
public string Handelse { get; set; }
public string Bedomning { get; set; }
public string Till { get; set; }
public string Rubrik { get; set; }
public string Verksamhetsslag { get; set; }
public string OperationPadrag { get; set; }
public string Verksamhetskod { get; set; }
public string LatitudTecken { get; set; }
public string Latitud { get; set; }
public string LongitudTecken { get; set; }
public string Longitud { get; set; }
public string Media { get; set; }
public string AnnatDokument { get; set; }
public string Region { get; set; }
public string id { get; set; }
}
編集、非常に興味深い発見です!
IE9 F12 モードで呼び出しをトレースすると、応答テキストに予想される HTML が実際に含まれています。なぜレンダリングしないのですか!
<div class="validation-summary-errors"><ul><li>Källan felaktig</li>
</ul></div>
<input class="input-validation-error" id="Kalla" name="Kalla" type="text" value="1" />
<span class="field-validation-error">Källan felaktig</span>
この問題を理解するための助けを得ることができれば、本当に感謝しています。