带有标题标记的mvc下拉选项,单位为mvc

时间:2012-07-25 10:24:45

标签: asp.net-mvc razor asp.net-mvc-4 dropdownbox

<select id="priority">
    <option value="calendar" title="icons/icon_calendar.gif">Calendar</option>
    <option value="shopping_cart" title="icons/icon_cart.gif">Shopping Cart</option>
    <option value="cd" title="icons/icon_cd.gif">CD</option>
    <option value="email"  selected="selected" title="icons/icon_email.gif">Email</option>
    <option value="faq" title="icons/icon_faq.gif">FAQ</option>
    <option value="games" title="icons/icon_games.gif">Games</option>
</select>

我希望在mvc 中使用title属性

进行此类下拉
 @Html.DropDownListFor(model => model.priority, new SelectList(ViewBag.Priority, "Value", "Text"), "-- Select Priority --", new { @class = "required" })

3 个答案:

答案 0 :(得分:4)

内置的DropDownList帮助程序不允许您在各个选项(如标题)上设置其他HTML属性。如果要实现这一点,则必须编写自己的自定义帮助程序。在这里same implementation你可以看一下你的需求。

答案 1 :(得分:1)

@Html.DropDownListFor(model => model.priority, new SelectList(ViewBag.Priority, "Value", "Text"), "-- Select Priority --", new { @class = "required", title="priority" })

答案 2 :(得分:0)

您可以通过以下方式获得所需的输出 1.使用扩展方法创建一个自定义帮助器,该方法将返回MvcHtmlString,它将为下拉列表创建自定义HTML并在视图中调用该方法。

喜欢下面

public static class CustomDropdown
{
public static string Dropdown(Priority priority)
      {       
           StringBuilder sb=new StringBuilder ();
           sb+="<Select id='drop'>";
           for(int i=0;i<priority.name.length;i++)
       {
           sb+="<option id='dropop' value='"+priority.value[i]+"'                      title='"+priority.title[i]+"'>"+priority.name[i]+"</option>";
       }
        sb+="</select>";
              return Convert.ToString(sb);                   
      }
   }
 }

2.在jquery的帮助下绑定给定选择的选项,如

  var i=0;
$('.drpclass option').each(function(){
$(this).attr('title',Model.priority.title[i])
i++;
});