私はこのC#MVCプロジェクトをRazorでいくつか表示しています。Razorビューは、属性をカプセル化した後に動作を停止します
モデルの既存のフィールドをプロパティに変更するか、またはその逆の場合、このフィールドを参照するRazorビューは機能しなくなり、フィールドがまだ存在していても実行時にSystem.MissingFieldExceptionが発生します。ビューは、私がそれに何らかの変更を加えた場合にのみ再び働く。空白をどこかに追加する。例えば、私はこの変更
場合:これに
public class Test
{
public List<string> myStrings = new List<string>();
}
:
public class Test
{
private List<string> _myStrings = new List<string>();
public List<string> myStrings
{
get
{
return _myStrings;
}
set
{
_myStrings = value;
}
}
}
をなぜこのようなことが起こるのでしょうか?自動的にビューが更新されるため、そのプロパティを参照するすべてのビューを見つけてビューを変更する必要はありませんか?
ビューを変更しましたか? _myStringsは公開されておりビューにアクセス可能で、非公開に変更した後はビューで使用できなくなります。ビューでは、myStringsを使用する必要があります – Sparrow
ビューはmyStringsにアクセスしていましたが、今はバッキングフィールドがありますか? –
ビューを再コンパイルする必要がありますか?プロパティ取得は実際にはメソッドコール(フィールドアクセス)ですか? – juunas