6

モデルの HtmlHelper、RadioButtonFor、および列挙型に問題があります。厳密に型指定されたビューがあり、チェックボックスで enum プロパティを切り替える必要があります。

Enum.cs

public enum Values{
    Value1,
    Value2
}

Model.cs

public class Model{
    public Values MyProp{ get; set; }
;

View.cshtml

@Html.RadioButtonFor(model => model.MyPropi, Values.Values1)

Controller.cs
public ActionResult WizardFirstStep()
{
    var model = new Model();
    return View(model);
}

コントローラーで MyProperty 値を設定すると、期待どおりに RadioButton がチェックされます。しかし、モデルをパラメーターとして取得する次のウィザード ステップへの投稿の後、プロパティは設定されません。

私が何を意味するかを理解するのに役立つ場合: C# と WPF の場合、IValueConverter を使用します。

ところで: HtmlHelper.ActionLink を使用して、モデルをコントローラーに取得します。

前もって感謝します

4

3 に答える 3

2

これを試してみてください。以前に同じことをしたので、うまくいくはずです:

@Html.RadioButtonFor(model => model.MyProp, (int)Values.Values1, model.MyProp == Values.Values1)

へのキャストに注意してくださいint。これにより、正しい値が html に使用されることが保証されます。

EDIT:申し訳ありませんが、ビューをロードするときに正しいラジオボタンが設定されるようにするには、3番目のパラメーターも必要だと思います。

またMyPropi、 はタイプミスだと思い、 に変更しMyPropました。最後に、これが正しく一致することを確認してください

于 2012-12-13T16:11:19.977 に答える
2

ご不便をかけて申し訳ありません。ここに投稿した後、私はすぐに解決策を見つけました。私の ActionLink は @Html.BeginForm フォームを送信していませんでした。だから私はラジオボタンを次のように変更しました:

@Html.RadioButtonFor(model => model.MyPropi, Values.Values1, new{ onClick = "this.form.submit();" })

これにより、正しい値がコントローラーに送信されます。とりあえずこれでOK。おそらく、ActionLink はフォーム データをポストバックできます。

于 2012-12-13T16:26:55.907 に答える
-1

Aspx ページの場合: <%:Html.RadioButtonFor(m => m.YourProp, 列挙型の選択値: demo1.enum1.value2)

于 2015-09-09T06:40:59.833 に答える