2014-02-17 142 views
0

問題這是我在型號代碼:與[數據類型]註釋

[Required(ErrorMessage = "The url is required")] 
[Url(ErrorMessage = "Invalid URL")] 
public String Url { get; set; } 

這是我在視圖代碼:

<div class="input-group"> 
    <span class="input-group-addon glyphicon glyphicon-link"></span> 
    @Html.TextBoxFor(m => m.Url, new { @class = "form-control", placeholder = "Feed URL" }) 
    @Html.ValidationMessageFor(m => m.Url) 
</div>*emphasized text* 

的問題是,網址註釋,應呈現具有屬性的輸入type =「url」

這就是我得到:

<input class="form-control" data-val="true" data-val-required="The url is required" data-val-url="Invalid URL" id="Url" name="Url" placeholder="Feed URL" type="text" value=""> 

這是我應該得到:

<input class="form-control" data-val="true" data-val-required="The url is required" data-val-url="Invalid URL" id="Url" name="Url" placeholder="Feed URL" type="url" value=""> 

類型第一的是 「文本」,並輸入該我應該得到的是「網址」。

+0

你確定你使用的是MVC 4嗎? –

回答

0

可以手動設置的類型,即

新{@class = 「形式控制」,佔位符= 「飼料URL」,類型= 「URL」}

因爲使用的是Html.TextBoxFor,它將呈現爲文本類型。

您可以隨時使用Html.EditorFor,然後創建您自己的編輯器模板「url」並在viewdata中傳遞必需的html屬性。

+0

哦,這很有用!我非常感謝。現在我想我會把這個類型放入匿名對象中。你認爲更常見的是EditorFor或TextBoxFor? –

+0

很高興我能幫忙!我個人更喜歡使用TextBoxFor來處理這種情況,因爲我可以輕鬆地指定html屬性。我通常使用EditorFor更復雜的情況下,我需要使用自定義EditorTemplates –