2008-11-10 106 views
0

如何將使用Html.RadioButton() HTML助手生成的單選按鈕的值綁定到具有類型爲struct的字段?ASP.NET MVC中枚舉的默認modelbinding?

減摘要:

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
它似乎只能工作一次..
最初它會根據需要創建單選按鈕,然後當您更改該值並回發時,該值將被正確綁定。然後在重新生成頁面時,按鈕的所有值都將設置爲您之前選擇的值。

+0

您是否在執行操作後重新綁定了您的viewdata?另外,你是否設置RadioButton Helper的isChecked參數? – 2009-02-14 09:51:53

回答

1

如果你的觀點是強烈SearchBag類型爲您的視圖數據類,那麼你應該能夠做到這些方針的東西:

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

那麼當你查看錶單提交回控制器,它會看起來像這樣:

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

這有幫助嗎?