2013-07-16 27 views
0

我正在使用一個asp.net mvc web應用程序,我有一個文本輸入字段以輸入搜索條件,但我的問題是我如何定義此字段是必需的使用戶點擊搜索按鈕。我正在考慮手動添加以下數據短線屬性,以模擬[Required]模型數據註釋的工作方式。如何指定需要搜索輸入字段

<input name="selectedUserNames" type="text" data-val="true" data-val-required= "Please enter a value." data-autocomplete-source= "@Url.Action("AutoComplete", "SecurityGroup")" /> 
<span class="field-validation-valid" data-valmsg-for="selectedUserNames" data-valmsg-replace="true"></span> 
<input type="submit" value="Seach" /> 
+0

這將完成這項工作!您也可以創建JS函數來驗證內容,並提醒用戶! – Fals

+0

如果我有腳本,那麼它將適用於屬於特定類的所有字段,而不是手動修改每個必填字段? –

回答

2

你在做什麼不是一個乾淨的解決方案,它只適用於客戶端。您應該創建一個SearchViewModel像下面並把它傳遞給你的視圖:

public class SearchViewModel 
{ 
    [Required] 
    public string Search { get; set; } 
} 

而且,在你的視野:

@Html.TextBoxFor(model => model.Search) 
@Html.ValidationMessageFor(model => model.Search) 
0

在前面的回答指出,僅啓用客戶端驗證是不是一個完整的解決方案。如果客戶端在其瀏覽器上禁用了JavaScript,該怎麼辦?那麼你的驗證想要開火。

您擁有的最佳選擇是使用DataAnnotation [必需的]屬性。在你的視圖中啓用客戶端驗證。

如果客戶端已禁用瀏覽器服務器端的JavaScript驗證將觸發。

+0

但我將傳遞額外的信息到視圖使用模型對象,所以我必須創建一個VieModel對象包含所有模型類的SearchModel和Model類,這將需要一些時間來開發。同時在客戶端添加驗證將更容易。如果用戶瀏覽器禁用javascript,那麼在最壞的情況下搜索將不會返回任何記錄。 –

相關問題