0

我想根据@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>
}
4

1 回答 1

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")
于 2012-05-11T02:29:18.147 回答