我正在尝试将新的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">
我确信这是我有一个荷马辛普森的时刻,但我无法让它工作。
答案 0 :(得分:1)
取出引号并在可空字段上使用GetValueOrDefault:
@Html.TextBoxFor(x => x.AnswerText, new { @class="textbox", cols=Model.Columns.GetValueOrDefault(), max=Model.Maximum.GetValueOrDefault(), placeholder=Model.Placeholder })