我有一个具有必需属性的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验证中的错误?难道我做错了什么 ?我期待太多了吗?
当我使用开箱即用的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中的应用程序引用..我得到一个应用程序确认窗口,我点击确定,它死了......太奇怪了.
我一直致力于将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) 我正在尝试使用Jekyll设置一个小博客.到目前为止,我的工作如下.
一切正常,但液体语法不能按预期工作.所有语法都作为平面文本输出.我不知道如何继续.此错误在本地以及我的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.=(
在尝试构建并运行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.
使用新的"Visual Studio Code"代码编辑器与1.这不是完整的Visual Studio IDE,而是基于atom.io的代码编辑器.我想安装插件专门用于拼写检查和格式化我的代码.我怎样才能做到这一点 ?
我按照说明进行操作:在Atom.io编辑器中是否有用于格式化html的命令? 但意识到我没有安装插件命令.
当我返回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页面).你下一步怎么做 ?
我在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)
如何禁用中/小屏幕的顶栏折叠?
我按照Here的说明进行操作,但无论我将min-width设置为什么,我都得到相同的结果.
我正在开发一个PaaS。该应用程序将托管在 Azure 网站中。目前我使用 EF / SQL 作为具有内存缓存的数据存储。如果应用程序增长并且我需要在多个实例之间共享此缓存,我计划使用 Azure Reddis 缓存。
随着我对 Reddis 的了解越来越多,我开始喜欢我所看到的。对于我的许多领域对象来说,它确实非常快速且完美。以我的日志模型为例。所以现在我想知道,我可以使用 Azure Reddis 缓存作为主要数据存储吗?
名称中的“缓存”一词让我感到担忧。不使用时数据会被清除吗?
该应用程序是一个 MVC5 应用程序。它包括一个 HtmlController 管理部分,但工作的重点是在 ApiController 中。ApiController 将主要服务于 OData Get,但我也将提供 PUT 请求。我按请求计费,因此必须记录所有用户操作(对于 reddis 来说这是一个完美的工作)。
我的模型有三个对象并且没有关系。不经常用于身份验证的用户。90% 的日志记录采用“即发即忘”方式,而存储则按“应用程序密钥”和“组密钥”进行分区。将请求存储“集”,并且将在内存中手动应用 Odata 动词。
Azure Tables 会是更好的解决方案吗?
我正在尝试为基于PCL的套接字实现编写Xamarin Forms示例.由于无法解析"表单",该项目将无法构建.该项目是全新的(2015年5月27日),我还没有添加任何自定义代码或包.我正在使用Xamarin Forms 1.4.2.如果我删除MainView.xaml,项目将构建.主视图是默认的,没有自定义代码.
错误CS0234:命名空间"Websocket.Portable.Xamarin"中不存在类型或命名空间名称"Forms"(您是否缺少程序集引用?)(CS0234)(Websocket.Portable.Xamarin)
其他Xamarin项目构建和运行良好,但是,我无法创建任何新的东西.