2011-11-07 81 views
1

我試圖將新的HTML5輸入屬性值填充到Razor局部視圖中。我的模型是這樣的:從模型中動態添加HTML5輸入屬性

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

取出的報價和可空字段使用GetValueOrDefault:

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

謝謝回答@Garrett,但不幸的是,只是生成以下HTML:' – Nick

+0

好吧,這是導致問題的可空屬性。查看更新後的答案。您需要使用GetValueOrDefault。 –

+0

完美的作品 - 謝謝@Garrett – Nick