3

我使用 Razor 3 单选按钮创建:

@Html.RadioButtonFor(model => model.SelectType, "Checking")
@Html.RadioButtonFor(model => model.SelectType, "Funds") 
@Html.RadioButtonFor(model => model.SelectType, "MoneyMarket")

Razor 创建了以下 HTML:

<input id="SelectType" name="SelectType" type="radio" value="Checking" /> 
<input id="SelectType" name="SelectType" type="radio" value="Funds" /> 
<input id="SelectType" name="SelectType" type="radio" value="MoneyMarket" /> 

现在我想使用 JQuery 根据选中的 RadioButton 来隐藏一些选项。我不能这样做,因为每个单选按钮都有相同的 ID。任何想法如何解决这个问题?

谢谢,

z

4

2 回答 2

1

正如tymeJV所说,只需id手动分配即可。

@Html.RadioButtonFor(model => model.SelectType, "Checking", new { id = "rbChecking" })
于 2013-09-26T20:50:18.443 回答
0

你可以只传递一个 ID:

@Html.RadioButtonFor(m => m.SelectType, "Checking", new { id = "rb1" })

或者,对于更通用的东西,如何定义一个扩展方法,将值附加到名称以生成唯一 ID(假设每个值只有一个单选按钮)?就像是:

public static MvcHtmlString UniqueRadioButtonFor<TModel, TValue>(
    this HtmlHelper<TModel> helper, Expression<Func<TModel, TValue>> expression,
    string value)
{
    string id = String.Format("{0}_{1}", helper.NameFor(expression), value);
    return helper.RadioButtonFor(expression, value, new { id = id });
}

然后,你可以这样做:

@Html.UniqueRadioButtonFor(m => m.SelectType, "Checking")

你会得到一个唯一的ID。

于 2013-09-26T20:54:50.693 回答