2015-04-17 30 views
2

我有一個過濾器dropdownlistfor:DropDownListFor表單提交不點火

@Html.DropDownListFor(x => x.selectedDateFilter, 
         new SelectList(Model.bydatefilter, "id", "dt", Model.selectedDateFilter), 
         "By Date", 
         new { onchange = "this.form.submit();", @class = "form-control" }) 

當我改變我得到什麼都沒有選擇。

這是頁面的源代碼:

<select class="form-control" 
     data-val="true" 
     data-val-number="The field selectedDateFilter must be a number." 
     data-val-required="The selectedDateFilter field is required." 
     id="selectedDateFilter" name="selectedDateFilter" 
     onchange="this.form.submit();"><option value="">By Date</option> 
             <option value="1">April-2015</option> 
             <option value="2">May-2015</option> 
             <option value="3">June-2015</option> 
             <option value="4">July-2015</option> 
             <option value="5">August-2015</option> 
             <option value="6">September-2015</option> 
             <option value="7">October-2015</option> 
             <option value="8">November-2015</option> 
             <option value="9">December-2015</option> 
             <option value="10">January-2016</option> 
</select> 

我注意到,所有關於這一主題的答案使用一個DropDownList,而不是一個「對」。是否有一個原因?爲什麼控件不回發?

編輯:我傳遞的模型是一個整數設置爲零。想法是,它將在帖子後通過索引設置選定項目。

public int selectedDateFilter { get; set; } 
selectedVenueFilter = 0; 

在這裏誤差被創建在源以下:我已檢查x.selectedDateFilter = 0。我還試圖將其設置爲1的值,並且仍然錯誤

data-val="true" 
data-val-number="The field selectedDateFilter must be a number." 

@Html.DropDownListFor(x => x.selectedDateFilter, 
         new SelectList(Model.bydatefilter, "id", "dt", Model.selectedDateFilter), 
         "By Date", 
         new { onchange = "this.form.submit();", @class = "form-control" }) 

+0

追加@沒什麼區別。相同。 –

+0

你有形式嗎?你有關聯的ValidationMessageFor()嗎? –

+0

我沒有驗證信息。 – Scott

回答

0

那麼你需要如下操作: - 生成的HTML是,如果它的`DropDownListFor()`或`的DropDownList()`

@Html.DropDownListFor(x => x.selectedDateFilter, 
         new SelectList(Model.bydatefilter, "id", "dt", Model.selectedDateFilter), 
         "By Date", 
         new { onchange = @"this.form.submit();", @class = "form-control" }) 

您需要this.form.submit();