フォームのフィールドの1つが緯度/経度座標である送信ページがあります。私は「場所」と呼ばSystem.Data.Entity.Spatial.DbGeographyに保存し、このようなフィールドレンダリング:私のコントローラでSystem.Data.Entity.Spatial.DbGeography - 無パラメータコンストラクタなし
<div class="form-group">
@Html.LabelFor(model => model.Location.Longitude, new { @class = "control-label col-md-2" })
<div class="col-sm-3">
@Html.TextBoxFor(model => model.Location.Longitude)
<img class="load-icon" src="~/Content/Loading.gif" />
@Html.ValidationMessageFor(model => model.Location.Longitude)
</div>
@Html.LabelFor(model => model.Location.Latitude, new { @class = "control-label col-md-2" })
<div class="col-sm-3">
@Html.TextBoxFor(model => model.Location.Latitude)
<img class="load-icon" src="~/Content/Loading.gif" />
@Html.ValidationMessageFor(model => model.Location.Latitude)
</div>
</div>
を、私は反対側にフォームを受け取る:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "...Location...")] Report report)
しかし、フォームの値をPOSTするたびに、例外がスローされ、オブジェクトの一部がコンストラクタのないパラメータを持たないことが示されます。バインド文字列から 'Location'を削除しても、他のすべてのプロパティを保持すると(サンプルでは省略されています)、正常に動作します。
これは、問題が「レポート」に挿入するDbGeographyを作成しようとしているが、インスタンス化できないために失敗していることを示しているようです。これは正しいです?もしそうなら、どうしたらこのエラーを回避できますか?私はむしろ私のデータベースでカスタムクラスを使用しないだろうが、私は他のオプションを考えることはできません。
がDBGeographyデフォルトのコンストラクタを持ちますか? – Zinov
引数がないpublicコンストラクタではありません –
publicコンストラクタではない場合、あなたの期待 - これはあなたの答えです –