2016-08-04 2 views
-1

Я использовал Ajax для получения информации от контроллера и отображения его в виде списка флажков на мой взгляд.Флажок, не связанный с контроллером

$(document).ready(function() { 
    $('#submitButton').hide(); //hide some buttons 
    $("#Name").hide(); 
    $("#Contact").hide(); 
    $("#Desc").hide(); 
    $("#PMeeting").hide(); 
    $("#Params").hide(); 

    $('#SelectedTeam').change(function() { 
     $('#content').html(''); 
     $.ajax({ 
      url: '/Audits/GetAuditParams', //this function retrieves a list of objects 
      type: "POST", 
      dataType: "json", 
      data: { 
       'tn': $('#SelectedTeam').val(), 
      }, 
      success: function (data) { //here I create the table with checkboxes and labels 
       $.each(data, function (i, item) { 
        var li = $('<input type="checkbox" value="' + item.Included + '" name=Parameters[' + i + '].Included id=Parameters_' + i + '__Included"/>' + 
      '<label for="Parameters[' + i + ']"></label></br>'). 
         text(item.ParameterDescription).prop('checked', item.Included); 

        li.find('label').text(item.ParameterDescription);//I create a set of hiddem fields with the same new, otherwise the collection will be null in the controller 

        $('<input>').attr({ 
         type: 'hidden', 
         id: 'Parameters_' + i + '__Included', 
         name: 'Parameters[' + i + '].Included' 
        }).appendTo('form'); 
        $('#content').append(li); 
       }); 
      } 
     }); 
     $.ajax({ //this is for a different information 
      url: '/Audits/GetAuditInfo', 
      type: "POST", 
      dataType: "json", 
      data: { 
       'tn': $('#SelectedTeam').val(), 
      }, 
      success: function (data) { 
       $("#SProject_ProjectName").val(data.ProjectID); 
       $("#SProject_POC").val(data.POC); 
       $("#SProject_PDescription").val(data.PDescription); 
       $("#SProject_PeriodicMeeting").val(data.PeriodicMeeting); 
       $("#Name").show(); 
       $("#Contact").show(); 
       $("#Desc").show(); 
       $("#PMeeting").show(); 
       $("#Params").show(); 

      } 
     }); 
     $('#submitButton').show(); 

    }); 

    function isChecked(value) { 

     if (value == 1) { 
      return true; 
     } 
     else 
      return false; 
    } 

    $('form').submit(function (e) { 
     $('input[type=checkbox]').prop('checked', function (index, value) { 
      if (value == true) { 
       $('#Parameters_' + index + '__Included').val(1); 
       $('#Parameters_' + index + '__Included').prop('checked', "checked"); 
      } else { 
       $('#Parameters_' + index + '__Included').val(0); 
      } 

     }); 
    }); 
}); 

Это мой HTML-код

<html> 
<head> 
</head> 
<body> 
    <div class="col-md-4" id="content"></div> 
</body> 
</html> 

Но я получаю информацию для галочки обнулить в контроллере, ModelStated.isvalid = false и это ошибка

Значение «0 'не входит в комплект поставки.

, а также все флажки (отмеченные или непроверенные) имеют значение «false».

ответ

2

Вы должны предоставить немного больше информации и перефразировать свои заявления в форме конкретного вопроса. Кроме этого, я не думаю, что это весь ваш код, который выглядит как пустая HTML-страница. Если вы хотите получить данные с контроллера MVC, вы должны создать модель, которую ваш контроллер предоставит вашему представлению. Вот пример того, как вы можете сделать это:

Accessing your model's data from a controller - asp.net

По сути, вы создаете модель и контекст базы данных, а затем создать экземпляр контекста в контроллере.

public class YourController : Controller 
{ 
    private YourDBContext db = new YourDBContext(); 
    public ViewResult Index() 
    { 
     return View(db.YourData.ToList()); 
    } 

} 

Передайте это с вашего контроллера на ваш взгляд, используя синтаксис бритвы.

@model IEnumerable<App.Model.Data> 

Используйте бритву, чтобы связать флажки модели

@Html.CheckBoxFor(model => model.data) 

В общем, я считаю, что проще использовать больше бритвы с HTML/начальной загрузкой и меньше JQuery. Трудно решить проблему с checkbox, не видя вашу модель или контроллер, но если вы сосредоточитесь на основах MVC, я думаю, что многие ваши проблемы будут разобраны. Мне жаль, что этот ответ не очень конкретный, но если вы пересмотрите свой вопрос, я могу быть более конкретным.

Смежные вопросы