Microsoft.CSharp.RuntimeBinder.RuntimeBinderException 当我尝试访问视图中的模型时
Microsoft.CSharp.RuntimeBinder.RuntimeBinderException when I try to access Model in View
我在一个典型的地方遇到了问题。
当我在视图中访问模型或任何动态变量(通过 ViewBag)时,
我得到 Microsoft.CSharp.RuntimeBinder.RuntimeBinderException.
例子
查看 (View/Assignments/Assignments.cshtml):
@using DocMaster.Models
@model List<IGrouping<string, User>>
...
<ul class="tree">
@foreach (var dep in Model)
{
<li class="close" name='open_close'>
<span class="org">@dep</span>
<ul>
@foreach (var user in dep)
{
<li class="li_user" name="resp_add" id="@user.Id">
<span class="user">@user.Surname @user.Name @user.Patronymic</span>
</li>
}
</ul>
</li>
}
</ul>
控制器(Controllers/AssignmentController.cs):
public class AssignmentController : Controller
{
private PgDb db = new PgDb();
[HttpGet]
public ActionResult Assignments(Guid docId)
{
var departments = db.Users.OrderBy(x => x.Surname).GroupBy(x => x.Department.Name).ToList();
return View(departments);
}
}
堆栈跟踪
Строка 76: <div class="dn" id="user_book03">
Строка 77: <ul class="tree">
Строка 78: @foreach (var dep in Model)
Строка 79: {
Строка 80: <li class="close" name='open_close'>
Исходный файл: C:\Users\ruslan\source\repos\Documentics\DocMaster\Views\Assignment\Assignments.cshtml Строка: 78
Трассировка стека:
[RuntimeBinderException: Не удается выполнить привязки исполняющей среды по нулевой ссылке]
CallSite.Target(Closure , CallSite , Object ) +115
System.Dynamic.UpdateDelegates.UpdateAndExecute1(CallSite site, T0 arg0) +629
ASP._Page_Views_Assignment_Assignments_cshtml.Execute() in C:\Users\ruslan\source\repos\Documentics\DocMaster\Views\Assignment\Assignments.cshtml:78
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +197
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +105
System.Web.WebPages.StartPage.RunPage() +17
System.Web.WebPages.StartPage.ExecutePageHierarchy() +64
你确定
var departments = db.Users.OrderBy(x => x.Surname).GroupBy(x => x.Department.Name).ToList();
正在返回一个值,因为错误坚持认为您在代码中的某处有一个空引用,我假设这就是代码给出的位置。调试控制器方法并找出空引用在哪里。
我在一个典型的地方遇到了问题。 当我在视图中访问模型或任何动态变量(通过 ViewBag)时, 我得到 Microsoft.CSharp.RuntimeBinder.RuntimeBinderException.
例子 查看 (View/Assignments/Assignments.cshtml):
@using DocMaster.Models
@model List<IGrouping<string, User>>
...
<ul class="tree">
@foreach (var dep in Model)
{
<li class="close" name='open_close'>
<span class="org">@dep</span>
<ul>
@foreach (var user in dep)
{
<li class="li_user" name="resp_add" id="@user.Id">
<span class="user">@user.Surname @user.Name @user.Patronymic</span>
</li>
}
</ul>
</li>
}
</ul>
控制器(Controllers/AssignmentController.cs):
public class AssignmentController : Controller
{
private PgDb db = new PgDb();
[HttpGet]
public ActionResult Assignments(Guid docId)
{
var departments = db.Users.OrderBy(x => x.Surname).GroupBy(x => x.Department.Name).ToList();
return View(departments);
}
}
堆栈跟踪
Строка 76: <div class="dn" id="user_book03">
Строка 77: <ul class="tree">
Строка 78: @foreach (var dep in Model)
Строка 79: {
Строка 80: <li class="close" name='open_close'>
Исходный файл: C:\Users\ruslan\source\repos\Documentics\DocMaster\Views\Assignment\Assignments.cshtml Строка: 78
Трассировка стека:
[RuntimeBinderException: Не удается выполнить привязки исполняющей среды по нулевой ссылке]
CallSite.Target(Closure , CallSite , Object ) +115
System.Dynamic.UpdateDelegates.UpdateAndExecute1(CallSite site, T0 arg0) +629
ASP._Page_Views_Assignment_Assignments_cshtml.Execute() in C:\Users\ruslan\source\repos\Documentics\DocMaster\Views\Assignment\Assignments.cshtml:78
System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +197
System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +105
System.Web.WebPages.StartPage.RunPage() +17
System.Web.WebPages.StartPage.ExecutePageHierarchy() +64
你确定
var departments = db.Users.OrderBy(x => x.Surname).GroupBy(x => x.Department.Name).ToList();
正在返回一个值,因为错误坚持认为您在代码中的某处有一个空引用,我假设这就是代码给出的位置。调试控制器方法并找出空引用在哪里。