从模型动态添加HTML5输入属性

时间:2011-11-07 14:53:19

标签: asp.net-mvc-3 html5 razor

我正在尝试将新的HTML5输入属性值填充到Razor局部视图中。我的模型看起来像这样:

public class Answer
{
    public int AnswerId { get; set; }
    public string AnswerText { get; set; }
    public int? Columns { get; set; }
    public int? Maximum { get; set; }
    public string Placeholder { get; set; }
}

我的部分视图如下:

@model Answer
@{Layout = null;}

@Html.TextBoxFor(x => x.AnswerText, new { @class="textbox", cols="@Model.Columns", max="@Model.Maximum", placeholder="@Model.Placeholder" })

可能不出所料,这会生成看起来像这样的html(我遗漏了一些不相关的属性):

<input type="text" class="textbox" cols="@Model.Columns", max="@Model.Maximum", placeholder="@Model.Placeholder">

然而我所追求的是看起来像这样的html,但无论模型中有什么值得开心:

 <input type="text" class="textbox" cols="50", max="30", placeholder="Answer here">

我确信这是我有一个荷马辛普森的时刻,但我无法让它工作。

1 个答案:

答案 0 :(得分:1)

取出引号并在可空字段上使用GetValueOrDefault:

@Html.TextBoxFor(x => x.AnswerText, new { @class="textbox", cols=Model.Columns.GetValueOrDefault(), max=Model.Maximum.GetValueOrDefault(), placeholder=Model.Placeholder })