Связывание моделей по умолчанию для enum в ASP.NET MVC? - PullRequest
0 голосов
/ 10 ноября 2008

Как связать значение переключателя, сгенерированного с помощью HTML-помощника Html.RadioButton(), с полем, имеющим структуру типа?

Менее абстрактно:

CommonProject.Services.SearchBag.Effects:

public enum Effects
{
    Any,
    Solid,
    Effect
}

В строго типизированных ViewData:

public class SearchBag{    
    public Effects EffectIndicator { get; set; }
}

И, на мой взгляд (это на самом деле не работает):

<%=Html.RadioButton("SearchBag.EffectIndicator", "Any", ViewData.Model.SearchBag.EffectIndicatorIsAny, new { @id = "SearchBag.EffectIndicatorAny" })%>

UPDATE
Кажется, работает один раз ..
Сначала он создает радиокнопки по желанию, затем, когда вы изменяете значение и отправляете обратно, значение корректно привязывается. Затем при восстановлении страницы все значения кнопок устанавливаются на значение, которое вы выбрали ранее.

1 Ответ

1 голос
/ 20 ноября 2010

Если ваш View строго типизирован с использованием SearchBag в качестве класса представления данных, то вы должны быть в состоянии что-то сделать по следующим направлениям:

<%= Html.RadioButtonFor(model => model.EffectIndicator, "Any", new { @id = "SearchBag.EffectIndicatorAny" }) %>

Тогда, когда ваша форма просмотра отправляется обратно в контроллер, она будет выглядеть примерно так:

public class MyController : Controller
{
    public ActionResult MyActionMethod(SearchBag searchBag)
    {
        Effects selectedEffect = searchBag.EffectIndicator;
    }
}

Это помогает?

...