RadioButtonFor helper创建具有相同id的按钮,但我想应用JQuery

时间:2013-09-26 20:43:07

标签: asp.net-mvc razor

我使用Razor 3 radiobuttons创建:

@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。我做不到,因为每个radiobutton都有相同的Id。 任何想法如何解决这个问题?

谢谢,

ž

2 个答案:

答案 0 :(得分:1)

tymeJV 表示只需手动分配id

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

答案 1 :(得分: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。