3

asp.net mvc 3 razorhtmlヘルパーを使用してhtmlコードをフォローしたい:

<input type="text" .... .   placeholder="Login" data-icon="user" />

私はこれを試しました:

@Html.TextBoxFor(m => m.UserName, new { placeholder = "Login", data-icon = "user" })

また

@Html.TextBoxFor(m => m.UserName, new { placeholder = "Login", @data-icon = "user" })

表示されるエラー:

Invalid anonymous type members declaration.

これは、データアイコンのダッシュが属性として使用されていないことが原因である可能性があります。テキストボックスフィールドにデータアイコン属性を追加するにはどうすればよいですか。

4

3 に答える 3

14

これを試して

@Html.TextBoxFor(m => m.UserName, new { placeholder = "Login", data_icon = "user" })
于 2013-03-13T08:57:18.440 に答える
9

Yes, you can't write like that but you can write your own Extension to solve this problem. Here is the sample code:

public static MvcHtmlString MyInput(this HtmlHelper htmlHelper, string name, string value, string icon)
    {
        var attrs = new Dictionary<string,object>();
        attrs.Add("data-icon", icon);
        return htmlHelper.TextBox(name, name, value, attrs);
    }

Or you can also use in razor like this:

@{
    var attrs = new Dictionary<string, object>();
    attrs.Add("placeholder","Login"); 
    attrs.Add("data-icon","user");
}
@Html.TextBoxFor(m => m.UserName, attrs)

Plz don't forget to mark it's right answer if it helps you :-)

于 2012-07-23T04:33:06.063 に答える
4

これは実際にはvNextの2番目の選択肢と同じですが、インラインで記述したい場合は次のようになります。

@Html.TextBoxFor(m => m.UserName, new Dictionary<string, object> { { "placeholder", "Login" }, { "data-icon", "user" } })
于 2012-10-30T13:20:42.537 に答える