1

スカラー文字列プロパティ「Clarified」を持つエンティティがあります。

明確化された値は、「はい」または「いいえ」にすることができます。

私のViewModelには、次のプロパティがあります。

public SelectList ClarifiedTypes { get; set; }
public string Clarified { get; set; }

Getアクションメソッド内で、次のことを行いました。

        model.ClarifiedTypes =
                new SelectList(
                new[] { new { Value = "1", Text = "Ja" }, new { Value = "2", Text = "Nej" }, },
                "Value",
                "Text");

これが私の見解でDDLを作成する方法です:

 <div class="editor-field">
                @Html.DropDownListFor(x => x.ClarifiedTypes, Model.ClarifiedTypes, "Välj alternativ")
 </div>

今、私の質問はPostactionメソッドの中にあります。

何らかの方法で、Model.Clarifiedから選択した値をModel.Clarifiedに入力してから、「entity.Clarified=Model.Clarified」を実行する必要があります。私はこれを行う方法がわかりません。

私が試してみました:

Model.Clarified = Model.ClarifiedTypes.selectedvalue.ToString();
Goalcard.Clarified = model.Clarified

しかし、エラーが発生します:

No parameterless constructor defined for this object.

私が達成したいのは、ユーザーがDDL内で[はい]または[いいえ]の値を選択できるようにし、その値をエンティティプロパティに入力できるようにすることです。

どんな助けでも大歓迎です!

前もって感謝します

アップデート:

このエラーを受け取りました

oこのオブジェクト用に定義されたパラメーターなしのコンストラクター。

説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーとエラーがコードのどこで発生したかについての詳細は、スタックトレースを確認してください。

例外の詳細:System.MissingMethodException:このオブジェクトにパラメーターなしのコンストラクターが定義されていません。

ソースエラー:

現在のWebリクエストの実行中に、未処理の例外が生成されました。例外の発生源と場所に関する情報は、以下の例外スタックトレースを使用して識別できます。

4

1 に答える 1

0

あなたは書くべきです

@Html.DropDownListFor(x => x.Clarified, Model.ClarifiedTypes, "Välj alternativ")

そして、Model.Clarifiedあなたがあなたのフォームを提出するとき、ドロップダウンリストから選択された値が入ります

モデルバインディングを機能させるには、モデルにデフォルトのコンストラクターが必要です。そうでない場合、MVCはモデルを作成してバインドできません。

モデルでデフォルトのコンストラクターを復元できない場合は、カスタムモデルバインダー以上を作成し、そのモデル用に別のビューモデルを作成します。

于 2012-05-28T07:20:31.223 に答える