小编Dav*_*vid的帖子

使用Json.NET转换器反序列化属性

我有一个类定义,其中包含一个返回接口的属性.

public class Foo
{ 
    public int Number { get; set; }

    public ISomething Thing { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

尝试使用Json.NET序列化Foo类给出了一条错误消息,例如"无法创建类型为'ISomething'的实例.ISomething可能是一个接口或抽象类."

是否有Json.NET属性或转换器可以让我指定Something在反序列化期间使用的具体类?

.net serialization json.net

84
推荐指数
6
解决办法
9万
查看次数

有没有办法让ValidationSummary与客户端验证器一起使用?

.NET ValidationSummary控件聚合来自在回发时触发的验证程序的错误消息.有没有办法让它也显示来自客户端验证器的错误消息?

我正在处理的问题是,在长页面上,可以单击提交按钮,让某些客户端验证器失败,但从不会看到错误消息.我想在按钮附近有一个验证摘要,这样用户永远不会没有反馈.

我希望任何具有客户端验证的标准.NET验证器都会反映在验证摘要中,但我最关心的是让RequiredFieldValidators工作.

我可以破解它,以便在短暂延迟后点击按钮会自动显示一条消息,告诉用户检查页面上的错误.这适用于没有发生回发的情况,但这会很难看.

以下是一些不适合我的示例代码:

<asp:LinkButton ID="btnOpen" runat="server" ToolTip="Open" ValidationGroup="Create" CausesValidation="true" />
<asp:TextBox ID="txtBlah" runat="server" />
<asp:RequiredFieldValidator ID="reqBlah" runat="server" ControlToValidate="txtBlah" EnableClientScript="true" Display="Dynamic" ErrorMessage="Enter some blah" ValidationGroup="Create" />
<asp:ValidationSummary ID="summary" runat="server" EnableClientScript="true" DisplayMode="BulletList" HeaderText="Errors:" ShowMessageBox="true" ShowSummary="true" ValidationGroup="Create" />
Run Code Online (Sandbox Code Playgroud)

验证器显示错误而没有回发,但摘要没有.

正如评论中所建议的那样,页面上可能还有其他东西可以阻止我的示例代码工作.我现在无法重现确切的原因,虽然页面很重,并且有一些UpdatePanels,所以我会坚持我的黑客,直到有更多的时间来处理它.

感谢您的帮助.我建议人们不再处理这个问题,因为我认为我没有提供足够的信息来真正帮助任何人解决问题.

.net c# asp.net validation

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

在MVC 5中使用Owin在浏览器中未设置身份验证cookie

这是我刚刚努力奋斗的事情,我现在有了答案所以我会问并回答这个问题.

问题是由于我在新的MVC 5站点上设置了身份验证,该站点与现有的非常自定义的成员资格数据库集成.

我基本上需要复制FormsAuthentication功能以使用户登录会话.除了普通的用户名/密码方法之外,系统还具有自动登录功能,该功能使用URL中的键/值.

我将控制器代码拆分如下​​:

    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public ActionResult Login(LoginViewModel model, string returnUrl)
    {                           
        if (ModelState.IsValid)
        {
            var loginResult = _authenticationService.Login(model.Email, model.Password, returnUrl);

            if (loginResult.Succeeded)
            {
                _loginFacade.DoLogin(loginResult, model.RememberMe);
            }
            else
            {
                ModelState.AddModelError("", "Invalid username or password.");
            }
        }

        return View(model);
    }

    [AllowAnonymous]
    public ActionResult Autologin(string key, string value)
    {

        if (ModelState.IsValid)
        {
            var loginResult = _authenticationService.AutoLogin(key, value);

            if (loginResult.Succeeded)
            {
                _loginFacade.DoLogin(loginResult, false);
            }
            else
            {
                ModelState.AddModelError("", "error message goes here");
            }
        }

        return View("Login");
    }
Run Code Online (Sandbox Code Playgroud)

对_authenticationService.Login的调用很好.那里没问题.

在对DoLogin的调用中,我正在做各种事情来创建身份验证属性,然后能够在新用户中签名,但无论我做什么,用户都不会在浏览器中登录:

public void …
Run Code Online (Sandbox Code Playgroud)

authentication asp.net-mvc owin

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