Mit MVC5 habe ich View-Logik hinzugefügt, um die Dateneingabe basierend auf einem Wert im Modell zu deaktivieren. Nachdem die Logik ausgeführt wurde, wird sie von der vorhandenen EditorTemplate-Logik überschrieben - das Feld bleibt aktiviert. Wie kann ich meine Sperrlogik funktionieren lassen? Diese Ansicht Logik läuft zuerst:Wie kann ich verhindern, dass die EditorTemplate-Logik die View-Logik überschreibt?
<div>
@{
object attributes = new { @class = "form-control", @disabled = "disabled", @readonly = "readonly" };
if (Model.OnHold.Number == 0) {
attributes = new { @class = "form-control datePicker" };
}
@Html.EditorFor(model => model.OnHold.DateIssued, attributes);
}
</div>
die in Konflikt stehenden EditorTemplate Code:
@model DateTime
@Html.TextBox(string.Empty, @Model.ToString("MM/dd/yyyy"), new { @class = "form-control datepicker" })
kann nicht man sich das 'ViewData' Objekt in Ihrer Editor Datetime-Ansicht, und überschreibt die Htmlattributes Objekt übergeben Sie normalerweise mit dem Wert im 'ViewData' Dictionary, wenn es vorhanden ist? – Bwolfing
Ich verwende ViewData nicht. – DeveloperDan
Ich weiß, dass Sie derzeit nicht sind, aber wenn Sie ein Objekt als zweiten Parameter an '@ Html.EditorFor()' übergeben, werden die Werte im Objekt 'ViewData' der Seite gespeichert. Mit anderen Worten, Sie können 'ViewData ["@ class"] '(Sie müssen möglicherweise überprüfen, was der genaue Schlüssel im Wörterbuch ist) in Ihrem datetime-Editor teilweise überprüfen, und Sie könnten das verwenden, um Ihre normale' new zu überschreiben {@class = "form-control datepicker"} ' – Bwolfing