简体   繁体   中英

HTTP Exception was unhandled by user code in MVC

Was receiving this error:

An exception of type 'System.Web.HttpException' occurred in System.Web.dll but was not handled in user code Additional information: DataBinding: 'Final.Models.Hello' does not contain a property with the name '700'.

I looked through google for some answers, but I still feel lost.

Model class:

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() is the same exact method as the getStuff(), just accepts a string ID parameter.

Controller class:

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

Index View Class:

 $(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>
 }

Selection View Class:

 <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>

The error occurs in the Selection View Class. The View classes are almost identical, the only difference being is the data being displayed in the Selection View Class based on the selected value from the drop down list.

Here is a link to a fiddle that combines the views into one: https://dotnetfiddle.net/5uCKhI

This should help you. Please let me know if there is anything else.

Controller/Model

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

View 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>

View 2 (Selection)

@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>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM