Asp.net mvc 4 DropDownListFor表单提交未触发

Asp.net mvc 4 DropDownListFor表单提交未触发,asp.net-mvc-4,html.dropdownlistfor,Asp.net Mvc 4,Html.dropdownlistfor,我有一个过滤器下拉列表,用于: @Html.DropDownListFor(x => x.selectedDateFilter, new SelectList(Model.bydatefilter, "id", "dt", Model.selectedDateFilter), "By Date", new { onchange = "this.form.

我有一个过滤器下拉列表,用于:

@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>
这就是错误在源中创建以下内容的原因:

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" })

我已检查x.selectedDateFilter=0的值。我还尝试将其设置为1,但仍然存在错误。

您需要执行以下操作:

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

您需要在
此.form.submit()之前追加
@
DropDownListFor()
DropDownList()
,则代码>

没有区别-生成的html是相同的。您有表单吗?您是否有关联的
ValidationMessageFor()
?我没有ValidationMessageFor。您的控件正在生成
data val-
属性,供
jquery.validate.unobtrusive.js
使用。您的模型是否无效(因此阻止提交),但是你不知道,因为没有显示消息?我只是注意到SelectList(Model.bydatefilter,你的答案的一部分)GrupRasad。我用Dropdownlistfor重试了一下,它成功了。
@Html.DropDownListFor(x => x.selectedDateFilter, 
                      new SelectList(Model.bydatefilter, "id", "dt", Model.selectedDateFilter), 
                      "By Date", 
                      new { onchange = @"this.form.submit();", @class = "form-control" })