У меня есть два каскадных выпадающих меню. Первое выпадающее меню имеет 2 значения: (Отрицательное и Положительное). Поэтому, если я выберу Отрицательное из первого выпадающего меню, второе выпадающее меню должно появиться еще с 3 значениями, и если я выберу Положительное, второе выпадающее меню должно иметь 2 значения.Эта бизнес-логика работает нормально.
Но когда я выбираю Отрицательный и значение из второго раскрывающегося списка, а затем я изменяю значение моего первого раскрывающегося списка, так что я хочу, чтобы свойство Model для второго раскрывающегося списка стало понятным, так как оно все еще содержит ранее выбранныезначение
Для этого у меня есть ajax-вызов контроллера, который будет обрабатывать все
<script language="javascript" type="text/javascript">
function GetValue(id) {
if ($("#firstDropdownID option:selected").index() == 1) {
$.ajax({
url: '@Url.Action("ResetDropdownValues", "ControllerName")',
data: '{ id: ' + id + '}',
contentType: "application/json; charset=utf-8",
cache: false,
type: "POST",
success: function (data) {
alert("error : " + reponse);
},
error: function(reponse) {
alert("error : " + reponse);
}
});
}</script>
И это контроллер, к которому я хочу обратиться к текущей модели, чтобы очистить ее свойство
[HttpPost]
public ActionResult ResetDropdownValues(int id)
{
if (id == 1)
{
//Access Current Model state to clear value for a particular property
}
return null;
}
А это код для изменения значения второго выпадающего, возвращающего JSonResult
if (!$("#firstDropdownID option:selected").index() == 0) {
var procemessage = "<option value='0'> Please wait...</option>";
$("#secondDropdownID ").html(procemessage).show();
var url = '@Url.Action("GetSecondDropdownValue", "ControllerName")';
$.ajax({
url: url,
data: '{ id: ' + id + '}',
contentType: "application/json; charset=utf-8",
cache: false,
type: "POST",
success: function(data) {
var markup = "<option value='0'>Select Type of Issue</option>";
for (var x = 0; x < data.length; x++) {
markup += "<option value=" + data[x].Value + ">" + data[x].Text + "</option>";
}
$("#secondDropdownID ").html(markup).show();
},
error: function(reponse) {
// alert("error : " + reponse);
}
});
}
И контроллера, возвращающего JsonResult
[HttpPost]
public ActionResult GetSecondDropdownValue(int id)
{
List<ExperienceType> obj_ToIssue = new List<ExperienceType>();
if (id == 1)
{
obj_ToIssue = GetValue().Where(m => m.Id != 0).ToList();
}
else
{
obj_ToIssue = GetValue().ToList();
}
SelectList obj= new SelectList(obj, "Id", "Name");
return Json(obj);
}