2017-10-12 125 views
0

我一直在使用的HtmlHelper創建的窗體的以下部分:創建通過Htmlhelper.editorfor()(MVC)顏色的inputType

<div class="form-group"> 
     @Html.LabelFor(model => model.ColorCode, htmlAttributes: new { @class = "control-label col-md-2" }) 
     <div class="col-md-10"> 
      @Html.EditorFor(model => model.ColorCode, new {htmlAttributes = new { @class = "form-control" } }) 
      <!--<input type="color" class="form-control"/>--> 
      @Html.ValidationMessageFor(model => model.ColorCode, "", new {@class = "text-danger"}) 
     </div> 
    </div> 

ColorCode的數據類型爲字符串,因此默認情況下它只是創建一個正常的文本框。我想要的是讓輸入表現爲顏色選擇器。註釋的html基本上是我想要創建的(如果適用的話,需要任何屬性來連接它)。我不是HTML專家)。有沒有辦法做到這一點?我無法通過搜索找到任何信息。

+1

'@ Html.TextBoxFor(m => m.ColorCode,new {@class =「form-control」,type =「color」})' –

回答

1

你可以嘗試這樣的事情:

@Html.TextBoxFor(model => model.ColorCode, new {@class="form-control", type="color"}) 

EditorFor將使用編輯器模板生成HTML輸出。要使用它,你必須爲該特定屬性類型定義一個編輯器模板,但是因爲這是一個string它有點通用。

另外@Stephen Muecke在評論中指出。

+0

這工作正常。實際上,我嘗試過的最初解決方案並且也失敗了。但我更喜歡你的,因爲我可以繼續使用'@ Html.'格式。問題實際上是我將顏色代碼的類型從int更改爲後端的字符串(以便更容易地處理來自colorpicker類型的輸入),但我忘記更新API的一部分以將其構建爲一個字符串,而不是一個int。無論如何,謝謝! – user1339253