6

我的模型中的 HtmlHelper、RadioButtonFor 和枚举存在问题。我有一个强类型视图,我希望复选框来切换我的枚举属性。

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 使用正确的值。

编辑:对不起,我认为您还需要第三个参数来确保在加载视图时设置了正确的单选按钮。

我还假设MyPropi是一个错字并将其更改为MyProp,请确保在您的末尾正确匹配

于 2012-12-13T16:11:19.977 回答
2

任何不便敬请谅解。在这里发布后,我很快找到了解决方案。我的 ActionLink 没有提交 @Html.BeginForm 表单。所以我将我的单选按钮更改为:

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

它将正确的值提交给我的控制器。目前这没关系。也许 ActionLink 可以回发表单数据。

于 2012-12-13T16:26:55.907 回答
-1

对于 Aspx 页面:<%:Html.RadioButtonFor(m => m.YourProp, 选择的枚举值,例如:demo1.enum1.value2)

于 2015-09-09T06:40:59.833 回答