Ich verwende MVC 3 w/Razor und mit der neuen dynamischen ViewBag-Eigenschaft. Ich möchte die ViewBag-Eigenschaft mit den EditorFor/LabelFor Html-Helfern verwenden, aber kann die Syntax nicht herausfinden.ASP.Net MVC, dynamische Eigenschaft und EditorFor/LabelFor
Die Ansicht hat ein @model-Set, aber das Objekt, das ich versuche zu verwenden, ist nicht Teil dieses Modells. Ich bin mir bewusst, dass ich ein ViewModel erstellen kann, aber das ist nicht das, wonach ich bin.
Kann jemand helfen?
Controller:
var myModel= _repo.GetModel(id);
var newComment = new Comment();
ViewBag.NewComment = newComment;
return View(myModel);
Ausblick:
@model Models.MyModel
@(Html.EditorFor(ViewBag.NewComment.Comment))
funktioniert das? –
@bahadirarslan Dies funktioniert nicht (Ein Ausdrucksbaum kann keinen dynamischen Ausdruck enthalten). Als eine mögliche Problemumgehung können Sie das dynamische Modell in den zugrunde liegenden Typ umwandeln (siehe meine Antwort für diese Problemumgehung). –
Dies funktioniert auch nicht für benutzerdefinierte Editoren. Zum Beispiel mit einem UIHint wie diesem '[DataType (DataType.Html), UIHint (" tinymce_jquery_full "), AllowHtml]' auf Ihrem Modell. Es ist besser, eine Teilansicht zu erstellen und ein Modellobjekt an sie zu übergeben. –