检查单选按钮

时间:2012-05-11 01:42:43

标签: asp.net-mvc-3 radio-button

我想根据@helper方法中“culture”变量中设置的文化来检查单选按钮。在调试过程中,我知道变量已设置;它只是没有检查英语或西班牙语单选按钮。

有人可以告诉我如何根据以下代码执行此操作,或者如果有更简单的代码方式,那也没关系。我正在使用MVC 3 Razor。

@helper selected(string c, string culture)
    {
        if (c == culture)
        {
            @:checked="checked"
        }  
    }

<script type="text/javascript">
    $(function () {
        $("input[type='radio']").click(function () {
            $(this).parents("form").submit();
        });

        // highlight selected language
        $("input[type='radio']:checked").next().css("font-weight", "bold");
    });
</script>

@using (Ajax.BeginForm("SetCulture", "Home", new AjaxOptions { UpdateTargetId = "setCulture" }))
{
    <fieldset id="setCulture">
        <legend>@Resources.SelectCulture</legend>
        <input name="culture" id="en-us" value="en-us" type="radio" @selected("en-us", culture) />
        <label for="en-us">
            English</label>
        <br />
        <input name="culture" id="es-es" value="es-es" type="radio" @selected("es-es", culture) />
        <label for="es-es">
            Español</label>
        <br />
    </fieldset>
}

1 个答案:

答案 0 :(得分:1)

如果你的文化变量等于“en-us”或“es-es”你已经应该工作的那些。我不认为它等于你的想法。你可以试试

<input name="culture" id="testing" value="testing" type="radio" @selected("testing","testing") /> 

测试你拥有的东西。

那就是说我建议将RadioButtonFor方法与强类型视图一起使用

public class YourViewModel
{
    public string Culture { get; set; }
    // Other properties
}

@model YourViewModel

@*Rest of view*@

@Html.RadioButtonFor(m => m.Culture, "en-us")
@Html.RadioButtonFor(m => m.Culture, "es-us")