私は明示的なプロパティを持つモデルクラスを持っており、MVCバインダーはそれらをバインドしていないようです。私は、エラーMVCバインド明示的なプロパティ
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary
は、この既知の問題であり得ますか?私はgoogleでこれについてのドキュメントを見つけることができません。結合が失敗しているので、呼び出されることはありません
私のクラス
public interface IPdf2Source
{
string Password { get; set; }
string OutputFormatSelected { get; set; }
}
public class OptionModel : IPdf2Source
{
public IPdf2Source Pdf2Source
{
get { return this; }
}
//Bind Ok
public string Email { get; set; }
//I get error on these properties while binding.
string IPdf2Source.Password { get; set; }
string IPdf2Source.OutputFormatSelected { get; set; }
}
ビュー
@using (Html.BeginForm())
{
@Html.TextBoxFor(p => p.Email)
@Html.TextBoxFor(p => p.Pdf2Source.Password)
@Html.HiddenFor(p=>p.Pdf2Source.OutputFormatSelected)
}
コントローラのアクション。明示的に宣言されたプロパティを削除すると、すべて正常に動作します。
public JsonResult ValidateFile(OptionModel formData)
{
}
コードを表示してください。 –
投稿を更新しました。 – Tomas
あなたの問題をよりよく理解できるように、ご質問にいくつかのコードを示してください。できるだけ多くのコードを追加してください。 –