asp.net-mvc – MVC5 Microsoft.CSharp.RuntimeBinder.RuntimeBinderException

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – MVC5 Microsoft.CSharp.RuntimeBinder.RuntimeBinderException前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在努力将MVC4项目转换为MVC5。第一天我遇到了一个“Microsoft.CSharp.RuntimeBinder.RuntimeBinderException”,但是能够通过开始我的转换来解决它。我不知道修复是什么是一个很大的,因为它再次发生。

当加载Login.cshtml页面时,_ExternalLoginsListPartial.cshtml中出现错误错误在第15行抛出(string action = Model.Action;)

@H_301_4@@using Microsoft.Owin.Security @{ var loginProviders = Context.GetOwinContext().Authentication.GetExternalAuthenticationTypes(); var authenticationDescriptions = loginProviders as AuthenticationDescription[] ?? loginProviders.ToArray(); if (!authenticationDescriptions.Any()) { <div> <p>There are no external authentication services configured. See <a href="http://go.microsoft.com/fwlink/?LinkId=313242">this article</a> for details on setting up this ASP.NET application to support logging in via external services.</p> </div> } else { string action = Model.Action; string returnUrl = Model.ReturnUrl; using (Html.BeginForm(action,"Account",new { ReturnUrl = returnUrl })) { @Html.AntiForgeryToken() <div id="socialLoginList"> <p> @foreach (AuthenticationDescription p in authenticationDescriptions) { <button type="submit" class="btn btn-default padded-8 margin-8" id="@p.AuthenticationType" name="provider" value="@p.AuthenticationType" title="Log in using your @p.Caption account"> <img src="@Url.Content("~/Content/Brands/"+p.Caption+".png")" alt="Microsoft" class="img-responsive" /> <br/> <b>@p.Caption</b> </button> } </p> </div> } } }

抛出的错误

An exception of type ‘Microsoft.CSharp.RuntimeBinder.RuntimeBinderException’ occurred in System.Core.dll but was not handled in user code

Additional information: ‘object’ does not contain a definition for ‘Action’

快照说

Message : object’ does not contain a definition for ‘Action’
Source : Anonymously Hosted DynamicMethods Assembly

现在这是双重的,因为当我设置一个断点Model.Action不为null。我可以看到价值。

这真的令人沮丧。该应用程序工作5分钟前..我已经更改了一个非相关页面上的html,现在它不工作。

黑客修复
我宁愿知道为什么这个错误发生。也就是说,我有一个快速的修复,以防其他人遇到这个(因为这是默认解决方案的一部分)。解决方案是不使用动力学。创建您自己的viewmodel并传递。

@H_301_4@public class ExternalLoginviewmodel { [Display(Name = "ReturnUrl")] public string ReturnUrl { get; set; } [required] [Display(Name = "Action")] public string Action { get; set; } } @Html.Partial("_ExternalLoginsListPartial",new ExternalLoginviewmodel { Action = "ExternalLogin",ReturnUrl = ViewBag.ReturnUrl })

解决方法

这个错误是由Microsoft验证的,他们正在修复它。

所以任何人从未来读这个:尝试更新visual studio 2013至少更新2。

https://connect.microsoft.com/VisualStudio/feedback/details/813133/bug-in-mvc-5-framework-asp-net-identity-modules

原文链接:https://www.f2er.com/aspnet/252545.html

猜你在找的asp.Net相关文章