問題陳述:級聯下拉驗證是MVC剃刀失敗
我創建了一個級聯下拉國家和國家使用jQuery和JSON的,一切工作fine.I'm能夠綁定數據,國家和國家的變化事件的數據。唯一的問題是我面臨的是國家和國家的級聯驗證。
關於打開查看iff我點擊創建按鈕,而沒有選擇/輸入控件的任何值,它顯示所有的驗證消息。如果我選擇國家並單擊創建,它不顯示驗證消息的狀態,即使沒有值被選爲國家。
我做錯了什麼?我認爲我在視圖的腳本部分做錯了什麼!
請參閱附件圖片瞭解更多詳情:
圖1:當我點擊創建按鈕,它顯示了所有控件的驗證。
圖2:選擇國家下拉如果我點擊創建按鈕之後,狀態驗證沒有出現,爲什麼?
查看代碼:
<div class="form-horizontal">
<hr />
@Html.ValidationSummary(true)
<div class="form-group">
@Html.LabelFor(model => model.cityModel.CountryID, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.cityModel.CountryID, new SelectList(Model.ddlCountryStateCity.ddlCountry, "Value", "Text"), "Select Country", new { id="CountryID",onchange="GetddlState()",@class = "form-control"})
@Html.ValidationMessageFor(model => model.cityModel.CountryID)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.cityModel.StateID, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.cityModel.StateID, new SelectList(Model.ddlCountryStateCity.ddlState, "Value", "Text"), "Select State", new { id="StateID",@class = "form-control" })
@Html.ValidationMessageFor(model => model.cityModel.StateID)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.cityModel.CityID, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.TextBoxFor(model => model.cityModel.CityID, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.cityModel.CityID)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.cityModel.Name, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.TextBoxFor(model => model.cityModel.Name, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.cityModel.Name)
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
腳本代碼:
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
<script type="text/javascript">
function GetddlState() {
$("#StateID").empty();
$("#StateID").append("<option value='0'>Select State</option>");
var countryID = $('#CountryID').val();
var Url = "@Url.Content("~/MasterConfigGeneral/GetddlState")";
$.ajax({
url: Url,
dataType: 'json',
data: { CountryID: countryID },
success: function (data) {
$("#StateID").empty();
$("#StateID").append("<option value='0'>Select State</option>");
$.each(data, function (index, optiondata) {
$("#StateID").append("<option value='" + optiondata.Value + "'>" + optiondata.Text + "</option>");
});
}
});
}
</script>
}
讓我知道它是否適合你.. –
這是工作以外one.Initially驗證所有的方案同時適用於國家和狀態控制。在國家選擇值後,如果沒有在狀態中選擇值,狀態驗證正在爲狀態工作(使用選項值=')。在選擇狀態值後,如果我再次選擇國家選擇國家我點擊創建按鈕驗證狀態不工作...爲什麼? –
@VishalIPatil plz看到更新的答案。 –