簡體   English   中英

MVC中的用戶代碼未對HTTP異常進行處理

[英]HTTP Exception was unhandled by user code in MVC

收到此錯誤:

System.Web.dll中發生類型'System.Web.HttpException'的例外但未在用戶代碼中處理附加信息:DataBinding:'Final.Models.Hello'不包含名稱為'700'的屬性。

我通過谷歌尋找答案,但我仍然感到迷茫。

型號類:

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()完全相同,只接受字符串ID參數。

控制器類:

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>

選擇視圖類中發生錯誤。 View類幾乎相同,唯一的區別是選擇視圖類中顯示的數據基於下拉列表中的選定值。

這是一個小提琴的鏈接,將視圖合並為一個: 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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM