小编nVe*_*lia的帖子

ModelState对null模型有效

我有一个具有必需属性的Model对象

 public class ApiPing
    {
        [Required]
        public DateTime ClientTime { get; set; }

        public DateTime ServerTime { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

我有一个控制模型状态的Controller方法.

   public IHttpActionResult Ping(ApiPing model)
    {    
        if (!ModelState.IsValid)
            return BadRequest(ModelState);

        model.ServerTime = DateTime.UtcNow;

        return Ok(model);
    }
Run Code Online (Sandbox Code Playgroud)

如果我向action方法提交了一个正确的请求(带有模型),我会从ModeState.IsValid(true)中获得正确的值.但是,当我提交无效请求(没有模型,因此模型为null)时,我得到一个错误的ModelState.IsValid(也是true).

我可以简单地检查一下我的代码中的模型是否为null,但这有气味.这是一个预期的"功能"还是ModelState验证中的错误?难道我做错了什么 ?我期待太多了吗?

c# asp.net-web-api

38
推荐指数
2
解决办法
3万
查看次数

使用facebook登录MVC5 Null参考

当我使用开箱即用的ASP.NET mvc5帐户控制器登录Facebook时,我有时会得到一个空引用异常.


这是节食方法:

public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
{
        // Crashes on this line
        var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
        if (loginInfo == null)
        {
            return RedirectToAction("Login");
        }
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何调试这个.一个断点和浸泡虽然代码没有帮助...我最终看到我的Error.cshtml页面.此时的错误是一个简单的对象引用null异常,内部异常也是null.


编辑

我通过Nuget更新到最新的Owins,没有变化.

编辑2

看看小提琴手,Facebook正在回归200,看起来像json一样正确.

编辑3

这么奇怪.我正在测试3个Facebook帐户.两个帐户工作正常,1个没有.失败者返回200.我已经删除了Facebook中的应用程序引用..我得到一个应用程序确认窗口,我点击确定,它死了......太奇怪了.

c# asp.net asp.net-mvc facebook

21
推荐指数
2
解决办法
7462
查看次数

MVC5 Microsoft.CSharp.RuntimeBinder.RuntimeBinderException

我一直致力于将MVC4项目转换为MVC5.第一天我遇到了'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'但是能够通过开始转换来解决它.我不确定修复是什么,这是一个无赖,因为它再次发生.

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

@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 …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc dynamic

17
推荐指数
1
解决办法
2万
查看次数

在Jekyll页面中使用Liquid标签无法正常工作

我正在尝试使用Jekyll设置一个小博客.到目前为止,我的工作如下.

  • 设置Github页面存储库
  • 克隆了当地的回购
  • 安装Ruby vs 2和sdk(windows)
  • 安装了杰基尔
  • '服务'本地网站.
  • 验证我可以查看我的网站localhost:4000

一切正常,但液体语法不能按预期工作.所有语法都作为平面文本输出.我不知道如何继续.此错误在本地以及我的github托管页面上都会发生.

这是我的index.html文件

<!DOCTYPE html>
<html lang="en-us">
<head>
  {% include meta %}{{ site.time | date_to_xmlschema }}
</head>
<body>
  {% include header.html %}
  {% include header.html %}
  {% include header.html %}
  {% foo %}
  {{ foo }}

  <section class="main-content">
    {% include footer.html %}
  </section>
  {% include scripts.html %}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我的_config.yml定义了foo.=(

ruby git liquid jekyll

16
推荐指数
1
解决办法
4008
查看次数

程序'[13492] dotnet.exe'已退出,代码为-2147450749

在尝试构建并运行hello world dotnetcore控制台应用程序时,应用程序将关闭,没有任何异常.在调试输出上,我看到以下内容.

程序'[13492] dotnet.exe'已退出,代码为-2147450749(0x80008083).

我的project.json

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },

  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0-*",
      "type": "platform"
    },
    "NuGet.CommandLine": "3.4.3"
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": "dnxcore50"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我的program.cs

 public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("help me");
            Console.ReadLine();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我正在使用最新的VStudio更新3.

c# .net-core

9
推荐指数
2
解决办法
1万
查看次数

Visual Studio代码插件(格式/拼写检查)

使用新的"Visual Studio Code"代码编辑器与1.这不是完整的Visual Studio IDE,而是基于atom.io的代码编辑器.我想安装插件专门用于拼写检查和格式化我的代码.我怎样才能做到这一点 ?

我按照说明进行操作:在Atom.io编辑器中是否有用于格式化html的命令? 但意识到我没有安装插件命令.

atom-editor visual-studio-code

7
推荐指数
2
解决办法
9938
查看次数

ASP.NET MVC5 WebAPI2防止未经授权的重定向到登录页面

当我返回Unauthorized()时,为什么我的WebApi2控制器将我重定向到登录页面?当我使用[Authorize]属性时也会发生同样的情况.控制器不应该按照Content-Type中的请求返回Json或XML结果吗?将我重定向到"登录"页面是浪费资源,对应用程序客户端完全没用.

我环顾网络似乎表单身份验证模块正在抓取我的401响应并将其转换为302.这很奇怪,因为我的身份验证模式是"无"(不是表单).此外,我已经读过这个'功能'已在.Net 4.5(我正在运行)中修复.

我已经尝试在我的Global.asax.cs中覆盖我的Application_EndRequest

        protected void Application_EndRequest()
    {
        var context = new HttpContextWrapper(Context);
        // If we're an ajax request, and doing a 302, then we actually need to do a 401
        if (Context.Response.StatusCode == 302 && context.Request.ContentType.StartsWith("application"))
        {
            Context.Response.Clear();
            Context.Response.ClearContent();
            Context.Response.StatusCode = 401;
            context.Response.RedirectLocation = null;
            Context.Response.End();
        }
    }
Run Code Online (Sandbox Code Playgroud)

它没有很好地工作(返回IIS Html页面).你下一步怎么做 ?

c# asp.net-web-api asp.net-mvc-5

5
推荐指数
1
解决办法
3169
查看次数

不使用SignalR时,ELMAH中出现SignalR错误

我在ELMAH中出现与SignalR有关的错误.我没有使用SignalR,我在Localhost上运行.该解决方案是一个MVC5互联网应用程序.造成这种情况的原因是什么?如何阻止这种情况?

未找到路径'/ signalr/negotiate'的控制器或未实现IController.

System.Web.HttpException未找到路径'/ signalr/negotiate'的控制器或未实现IController.

System.Web.HttpException(0x80004005):未找到路径'/ signalr/negotiate'的控制器或未实现IController.在System.Web.Mvc.DevaultControllerFactory.GetControllerInstance(RequestContext requestContext,Type controllerType)中的System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext,String controllerName)at System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext,IController&controller) System.Web.Mvc上System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext,AsyncCallback回调,对象状态)的System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext,AsyncCallback回调,对象状态),IControllerFactory&factory) System.Web.HttpApplication.ExecuteStep(IExecutionStep)上的System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()中的.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext上下文,AsyncCallback cb,Object extraData) step,Boolean&completedSynchronously)

asp.net-mvc elmah signalr

4
推荐指数
1
解决办法
2113
查看次数

Zurb Foundation禁用顶栏折叠

如何禁用中/小屏幕的顶栏折叠?

我按照Here的说明进行操作,但无论我将min-width设置为什么,我都得到相同的结果.

zurb-foundation

3
推荐指数
1
解决办法
928
查看次数

Azure Redis 缓存作为数据存储?

我正在开发一个PaaS。该应用程序将托管在 Azure 网站中。目前我使用 EF / SQL 作为具有内存缓存的数据存储。如果应用程序增长并且我需要在多个实例之间共享此缓存,我计划使用 Azure Reddis 缓存。

随着我对 Reddis 的了解越来越多,我开始喜欢我所看到的。对于我的许多领域对象来说,它确实非常快速且完美。以我的日志模型为例。所以现在我想知道,我可以使用 Azure Reddis 缓存作为主要数据存储吗?

名称中的“缓存”一词让我感到担忧。不使用时数据会被清除吗?


应用

该应用程序是一个 MVC5 应用程序。它包括一个 HtmlController 管理部分,但工作的重点是在 ApiController 中。ApiController 将主要服务于 OData Get,但我也将提供 PUT 请求。我按请求计费,因此必须记录所有用户操作(对于 reddis 来说这是一个完美的工作)。

我的模型有三个对象并且没有关系。不经常用于身份验证的用户。90% 的日志记录采用“即发即忘”方式,而存储则按“应用程序密钥”和“组密钥”进行分区。将请求存储“集”,并且将在内存中手动应用 Odata 动词。


Azure Tables 会是更好的解决方案吗?

azure azure-web-roles azure-redis-cache azure-sql-database

3
推荐指数
1
解决办法
2630
查看次数

无法在全新项目中引用Xamarin.Forms

我正在尝试为基于PCL的套接字实现编写Xamarin Forms示例.由于无法解析"表单",该项目将无法构建.该项目是全新的(2015年5月27日),我还没有添加任何自定义代码或包.我正在使用Xamarin Forms 1.4.2.如果我删除MainView.xaml,项目将构建.主视图是默认的,没有自定义代码.

错误CS0234:命名空间"Websocket.Portable.Xamarin"中不存在类型或命名空间名称"Forms"(您是否缺少程序集引用?)(CS0234)(Websocket.Portable.Xamarin)

其他Xamarin项目构建和运行良好,但是,我无法创建任何新的东西.

在此输入图像描述 项目下载

c# xamarin xamarin.forms

0
推荐指数
1
解决办法
545
查看次数