2011-11-07 10 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ですが、モデル内にある値happpensは

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

私はホーマーシンプソンの瞬間を持っていると確信していますが、私はそれを動作させることができません。

答えて

1

引用符を取り出し、NULL可能フィールド上GetValueOrDefaultを使用します。@Garrettに答えるため

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

おかげで、残念ながらそれはちょうど次のHTMLを生成します。「<入力タイプを= 『テキスト』クラス= 『テキストボックス』 cols max placeholder> ' – Nick

+0

OK、問題の原因となっているnull可能なプロパティです。更新された回答を参照してください。 GetValueOrDefaultを使用する必要があります。 –

+0

それは完璧に動作します - ありがとう@ギャレット – Nick

関連する問題