Исключение HTTP не было обработано кодом пользователя в MVC - PullRequest
0 голосов
/ 07 ноября 2018

Получал эту ошибку:

Исключение типа 'System.Web.HttpException' произошло в System.Web.dll, но не было обработано в коде пользователя Дополнительная информация: DataBinding: «Final.Models.Hello» не содержит свойство с именем «700».

Я искал ответы в Google, но все еще чувствую себя потерянным.

Класс модели:

public Hello () {

           db = new ExtensionDBEntities();
        }

public List<Hello> getID()
        {
            var que = (from rel in db.Table1
                       select new Hello
                       {
                           ID = rel.ID
                       }).ToList();
            return que;
        }

public List<Hello> getStuff()
        {
            var que = (from wre in db.View
                       select new Hello
                       {
                           ID = wre.ID,
                           Summary = wre.Summary,
                           Description = wre.Description

                       }
         }

getHello () - это тот же точный метод, что и getStuff (), просто принимает параметр идентификатора строки.

Класс контроллера:

public ActionResult Index()
        {
           var model = test.getStuff();
           ViewBag.Releases = new SelectList(test.getID(), "", "ID");
           ViewBag.Managers = new SelectList(test.getManagers(), "", "Managers");
            return View("");
        }

        [HttpPost]
        public ActionResult Selection()
        {
            string selectedId = Request["IDText"].ToString();
            string Managers = Request["ManagersText"].ToString();
            var model = test.getStuff();
            ViewBag.Releases = new SelectList(test.getID(), selectedId, "ID");
            ViewBag.Managers = new SelectList(test.getManagers(), Managers, "Managers");
            var que = test.getHello(selectedId, Managers);
            return View(que);
        }

Класс просмотра индекса:

 $(document).ready(function () {
   $("#Releases").on("change", function () {
                var value = $('#Releases :selected').text()
                $("#IDText").val(value);
            });
            $("#Managers").on("change", function () {

                var value = $('#Managers :selected').text()
                $("#ManagersText").val(value);
            });

});
@using (Html.BeginForm("Selection", "Sample", FormMethod.Post))
 {
    <div class="container" id='div_release'>

        @Html.DropDownList("Releases", ViewBag.Releases as SelectList)
        @Html.DropDownList("Managers", ViewBag.Managers as SelectList)
        @Html.Hidden("IDText", "")
        @Html.Hidden("ManagersText", "")
        <input type="submit" name="Submit" id="btnUploadData" class="btn btn-primary" value="Upload" />
    </div>
 }

Класс просмотра выбора:

 <div class="container">
        <table id="myTable" align="left">
            <tr>
                <th>@Html.DisplayNameFor(model => model.ID)</th>
                <th>@Html.DisplayNameFor(model => model.Summary)</th>
                <th>@Html.DisplayNameFor(model => model.Description)</th>
            </tr>

     @foreach (var item in Model)
        {
          <tr id="Home">

              <td>@Html.DisplayFor(x => item.ID)</td>
              <td>@Html.DisplayFor(x => item.Summary)</td>
              <td>@Html.DisplayFor(x => item.Description)</td>
           </tr>
         }

 $(document).ready(function () {
       $("#Releases").on("change", function () {
                    var value = $('#Releases :selected').text()
                    $("#IDText").val(value);
                });
                $("#Managers").on("change", function () {

                    var value = $('#Managers :selected').text()
                    $("#ManagersText").val(value);
                });

    });
    @using (Html.BeginForm("Selection", "Sample", FormMethod.Post))
     {
        <div class="container" id='div_release'>

            @Html.DropDownList("Releases", ViewBag.Releases as SelectList) // Getting the error here....
            @Html.DropDownList("Managers", ViewBag.Managers as SelectList)
            @Html.Hidden("IDText", "")
            @Html.Hidden("ManagersText", "")
            <input type="submit" name="Submit" id="btnUploadData" class="btn btn-primary" value="Submit" />
        </div>
     }
  </table>
 </div>

Ошибка возникает в классе представления выбора. Классы просмотра почти идентичны, единственное отличие состоит в том, что данные отображаются в классе представления выбора на основе выбранного значения. из выпадающего списка.

1 Ответ

0 голосов
/ 07 ноября 2018

Вот ссылка на скрипку, которая объединяет виды в одно: https://dotnetfiddle.net/5uCKhI

Это должно вам помочь. Пожалуйста, дайте мне знать, если есть что-нибудь еще.

Контроллер / Модель

public class caitlinpRealViewModel
{
    public List<SelectListItem> IDList { get; set; }
    public string selectedId { get; set; }
    public List<SelectListItem> ManagerList { get; set; }
    public string selectedManager { get; set; }
}

public class HomeController : Controller
{
    public caitlinpRealViewModel SetupViewModel(caitlinpRealViewModel vm)
    {
        caitlinpRealViewModel viewModel = new caitlinpRealViewModel();

        if (vm != null)
        {
            viewModel.selectedId = vm.selectedId;
        }
        else
        {
            viewModel.selectedId = "1";
        }

        SelectListItem listItem = new SelectListItem() { Text = "1", Value = "1" };
        SelectListItem listItem2 = new SelectListItem() { Text = "2", Value = "2" };
        List<SelectListItem> list = new List<SelectListItem>();
        list.Add(listItem);
        list.Add(listItem2);

        if (vm != null)
        {
            viewModel.selectedManager = vm.selectedManager;
        }
        else
        {
            viewModel.selectedManager = "1";
        }
        SelectListItem listItem3 = new SelectListItem() { Text = "aManager", Value = "1" };
        SelectListItem listItem4 = new SelectListItem() { Text = "bManager", Value = "2" };
        List<SelectListItem> list2 = new List<SelectListItem>();
        list2.Add(listItem3);
        list2.Add(listItem4);

        viewModel.IDList = list;
        viewModel.ManagerList = list2;

        return viewModel;
    }

    [HttpPost]
    public ActionResult Selection(caitlinpRealViewModel vm)
    {
        caitlinpRealViewModel viewModel = SetupViewModel(vm);
        return View(viewModel);
    }

    public ActionResult Tut135()
    {
        caitlinpRealViewModel viewModel = SetupViewModel(null);
        return View(viewModel);
    }

Вид 1

@model Testy20161006.Controllers.caitlinpRealViewModel
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Tut135</title>
</head>
<body>
    @using (Html.BeginForm("Selection", "Home", FormMethod.Post))
    {
        <div class="container" id='div_release'>
            @Html.DropDownListFor(m => m.selectedId, new SelectList(Model.IDList, "Value", "Text"))
            @Html.DropDownListFor(m => m.selectedManager, new SelectList(Model.ManagerList, "Value", "Text"))
            <input type="submit" name="Submit" id="btnUploadData" class="btn btn-primary" value="Upload" />
        </div>
    }
</body>
</html>

Просмотр 2 (Выбор)

@model Testy20161006.Controllers.caitlinpRealViewModel
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Selection</title>
</head>
<body>
    <div class="container">
        <table id="myTable" align="left">
            @using (Html.BeginForm("Selection", "Home", FormMethod.Post))
            {
                <div class="container" id='div_release'>
                    @Html.DropDownListFor(m => m.selectedId, new SelectList(Model.IDList, "Value", "Text"))
                    @Html.DropDownListFor(m => m.selectedManager, new SelectList(Model.ManagerList, "Value", "Text"))
                    <input type="submit" name="Submit" id="btnUploadData" class="btn btn-primary" value="Submit" />
                </div>

            }
        </table>
    </div>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...