Mein Modell enthält eine Eigenschaft namens %code% , und in meiner %code% Sicht habe ich den Seitentitel mit %code% festgelegt.
Dies führt zu folgendem Problem: Das von %code% generierte Formular zeigt den Text von %code% anstelle des %code% -Werts des Modells an.
Die einzige Problemumgehung, die ich gefunden habe, besteht darin, zuerst %code% aufzurufen und dann %code% zu setzen.
Hat jemand eine bessere Lösung?
Edit 1: Ich benutze MVC 3.
Bearbeiten 2: Das ist mein %code% :
%Vor%Wie von den anderen Antworten vorgeschlagen, scheint die Verwendung von %code% anstelle von %code% das Problem zu umgehen. Die Verwendung von %code% erfordert jedoch die Kenntnis des Modelltyps und des Eigenschaftstyps zur Kompilierzeit, was für %code% nicht der Fall ist.
Sie können dies trotzdem tun, indem Sie die korrekte generisch konstruierte %code% -Methode mithilfe von Reflection aufbauen und aufrufen. Der Code, um dies zu tun, ist wirklich chaotisch, also hier sind einige wiederverwendbare Erweiterungsmethoden, um es für Sie zu tun.
Verwenden Sie sie wie folgt in %code% , wobei %code% eine Instanz von %code% wie in der Frage ist:
%Vor%Hier sind die Erweiterungsmethoden:
%Vor%Ich habe selbst eine Teillösung gefunden.
Verwenden Sie einfach:
%Vor%anstelle von:
%Vor%Html.EditorForModel () -Methode gibt die gleichen Ergebnisse zurück, aber ohne beschriebenes Problem.
Ich würde empfehlen, %code% anstelle von %code% zu verwenden.
%Vor%anstelle von:
%Vor%Auf diese Weise nutzt die Ansicht nicht nur Ihr Ansichtsmodell, sondern verhält sich in diesem Fall wie erwartet.
Beispiel mit ASP.NET MVC 3.0 RTM (Razor):
Modell:
%Vor%Controller:
%Vor%Anzeigen:
%Vor%Also, egal wie sehr wir versuchen, hier zu missbrauchen, die Editor-Vorlage verwendet den korrekten Modelltitel (was nicht der Fall ist, wenn wir %code% verwendet haben).
Ich löse das gleiche Problem. Verwenden Sie stattdessen diese Syntax Html.Editor
%Vor%