小编RHa*_*ris的帖子

jQuery 单击事件未在 optgroup 上触发

我有以下代码 - jsFiddle上的示例

<select>
 <optgroup label="Group1">
   <option value="11">Option 1</option>
   <option value="12">Option 2</option>
 </optgroup>
 <optgroup label="Group2">
   <option value="21">Option 1</option>
   <option value="22">Option 2</option>
 </optgroup>
</select>?
Run Code Online (Sandbox Code Playgroud)

和一些 jquery 代码:

$(document).ready(function() {
$("select optgroup").click(function() {
    alert("Clicked " + $(this).attr("label"));            
});
Run Code Online (Sandbox Code Playgroud)

这看起来很简单。如果我添加onclick="javascript:alert(...);"这似乎有效......除了无论点击什么都会触发点击。

为什么这不起作用?

谢谢你的帮助!

编辑

我在这里尝试做的事情似乎存在误解,所以我需要稍微扩展代码以提供更好的想法。

我的目标是能够做到以下几点:

$(document).ready(function() {
   $("select optgroup").children().hide();
   $("select optgroup").click(function() {
      $(this).children().show();
   });
Run Code Online (Sandbox Code Playgroud)

如您所见,在选项上捕获单击事件然后确定组将不起作用,因为选项将全部隐藏。我希望在您单击组 (optgroup) 时显示选项。话虽如此,Chrome 似乎并不尊重对组的点击,而 IE 仅返回所选项目的组(当您单击 optgroup 时)项目。

jquery

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

Automapper在第一次调用时正确映射,但在第二次调用时跳过属性

我定义了以下类:

public class ImageIndexModel {
   public string Description {get; set;}
   public string InstrumentNumber {get; set;}
}

public class ImageEditModel : ImageIndexModel {
    public int TotalCount = 0;
}

public class Clerk {  //This is actually a class defined by LinqToSql
    public string Description {get; set;}
    public string InstrumentNo {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

现在,在我global.asax,我已经定义了以下映射Application_Start().

Mapper.CreateMap<ImageIndexModel, Clerk>()
   .ForMember(dest => dest.InstrumentNo,
              opt => opt.MapFrom(src => src.InstrumentNumber));
Run Code Online (Sandbox Code Playgroud)

最后,在我的一个控制器中,我有以下代码:

var _existing = new Clerk();
var _default = new ImageEditModel() {
                 InstrumentNumber = …
Run Code Online (Sandbox Code Playgroud)

c# model-view-controller automapper

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

简单映射时的EF 5.0多重性错误

我有以下域对象:

public class Person 
{
    public int Id {get; set;}
    public int? FatherId {get; set;}
    public int? MotherId {get; set;}
    public int? HomeChurchId {get; set;}
    public int? BirthCountryId {get; set;}

    public Parent Father {get; set;}
    public Parent Mother {get; set;}
    public Church HomeChurch {get; set;}
    public Country BirthCountry {get; set;}
}

public class Parent
{
    public int Id {get; set;}
    ...
}

public class Church
{
    public int Id {get; set;}
    ...
}

public class Country
{
    public int Id …
Run Code Online (Sandbox Code Playgroud)

entity-framework code-first

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

MailKit:从IMAP服务器获取新邮件通知

我需要创建一个连接到IMAP服务器并侦听新邮件的服务(或控制台)应用程序.我目前正在尝试使用MailKit,但我无法从文档中找出如何实现这一目标.

我最接近的是这篇文章.从我所看到的,这篇文章是将连接设置为IDLE模式,偶尔发送NoOP以尝试保持连接活动.我不完全清楚的是如何收到新的邮件通知.

MailKit文档似乎表明有一个Alert事件可用.我试过挂钩,但这似乎没有解决任何问题.

这是我尝试过的:

    var cts = new CancellationTokenSource();
    testIDLEMailNotification(cts.Token);

    ...

    private static void testIDLEMailNotification(CancellationToken token)
    {
        using (var client = ClientCreateAndConnect(token))
        {
            while(!token.IsCancellationRequested)
            {
                using (var done = new CancellationTokenSource())
                {
                    using (var timer = new System.Timers.Timer(9 * 60 * 1000))
                    {
                        timer.Elapsed += (sender, e) => done.Cancel();
                        timer.AutoReset = false;
                        timer.Enabled = true;
                        try
                        {
                            client.Idle(done.Token, token);
                            client.NoOp(token);

                        }
                        catch (OperationCanceledException)
                        {
                            break;
                        }
                    }
                }
            }
        }
    }

    private static ImapClient ClientCreateAndConnect(CancellationToken token)
    {
        var …
Run Code Online (Sandbox Code Playgroud)

c# imap mailkit

5
推荐指数
2
解决办法
5915
查看次数

无法在chrome中使用knockoutjs禁用jqueryui按钮

我有以下非常简单的代码:

HTML

<a data-bind="enable: selected()" href="http://www.google.com">Click Me</a>
Run Code Online (Sandbox Code Playgroud)

JavaScript的

function pageViewModel() {
    var self = this;
    self.selected = ko.observable();
}
$(document).ready(function() {
    $("a").button();
    ko.applyBindings(new pageViewModel());
});
Run Code Online (Sandbox Code Playgroud)

这适用于IE9但不适用于Chrome(即在IE9中使锚标记看起来像禁用按钮,但在Chrome中,标记看起来像/是启用按钮).我也试过通过以下绑定直接操作css来禁用按钮:

<a data-bind="css: {ui-button-disabled: !selected(), ui-state-disabled: !selected()}">Click Me</a>
Run Code Online (Sandbox Code Playgroud)

但显然,knockoutjs并不喜欢我正在使用的类具有 - 在其中的事实.

所以现在我被卡住了.有没有人对如何使用jqueryui和knockoutjs为这两个浏览器工作有任何想法?

谢谢.

jquery-ui knockout.js

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

Aurelia是否根据房产的原始价值提供任何类型的脏指标

我有一个编辑表单,我希望禁用"保存"按钮,直到对绑定到输入或选择元素的其中一个属性进行编辑.

但是,如果用户将文本编辑回原始值,则表单不应再被视为脏.

例:

  1. 原始值:"测试" - 不肮脏
  2. 用户编辑输入并将值更改为:"测试2" - 脏
  3. 用户再次编辑输入并将值更改回"测试" - 不脏

我看到这篇文章描述了如何创建dirtyBindingBehavior,但它只将新值与之前的值进行比较 - 在​​这种情况下,上面的第3行将导致仍然将表单列为Dirty,因为它将比较旧值"测试2"对"测试"的新值.

有关如何实现这一目标的任何想法?

aurelia

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

Okta 不返回令牌中的自定义声明

我刚刚在 Okta 注册了一个开发测试帐户,以使用 Okta 的身份验证服务和用户管理来测试 OIDC。

使用他们的管理门户,我创建了第二个名为 Test Group 的组以及默认的 Everyone 组,并将我的单个用户添加到这两个组中。

然后,我添加了一个名为 My SPA 的应用程序,并为该应用程序分配了测试组访问权限。

使用经典 UI,然后我编辑了 OpenID Connect ID Token 部分并将组声明类型设置为Expression并添加groups为声明名称和getFilteredGroups(app.profile.groupwhitelist, "group.name", 40)表达式。

然后我去编辑了授权服务器。我添加了一个名为“组”的声明,其正则表达式为 *。与任何范围、访问令牌一起使用并始终包含。

然后我使用令牌预览选择我的用户并使用隐式授权流程,但没有显示组。

如何让用户的组在 Okta 身份验证服务器的 ID 或访问令牌中显示为声明?

编辑 我所拥有的屏幕截图:

2组用户部分 添加到默认 AS 的声明 我从令牌预览中得到的东西——没有角色声明

claims openid-connect okta

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

.Net Core 2.1 Web API文件上传,其他表单数据不起作用

我正在使用Postman来测试.Net Core 2.1 Web API.我从这开始,它工作 - 我能够从Postman发送文件到我的Web API.

Web.API

[HttpPost("uploads")]
public IActionResult FileUpload(IFormFile myfile)
{
   ...
   return Ok();
}
Run Code Online (Sandbox Code Playgroud)

但是,我需要传递一些额外的表单数据和文件.基于我见过的其他帖子,我尝试了以下内容:

[HttpPost("uploads")]
public IActionResult FileUpload(UploadFile data)
{
    ...
    return Ok();
}

public class UploadFile {
   public IFormFile myfile {get; set;}
   public bool forceOverwrite {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

现在从邮递员发帖导致"输入无效".我已经做了一些搜索,似乎找不到任何已经得到类似工作的人.

更新

我也试过以下几点; 但是,附加值总是假的 - 即使发送为真.

public IActionResult FileUpload(IFormFile myfile, bool forceOverwrite)
Run Code Online (Sandbox Code Playgroud)

更新2

在此输入图像描述

在此输入图像描述

这是我在Postman中添加的内容,以及它在Fiddler中的显示方式.(PS你可以忽略POST中的路由与我的代码中列出的路由不匹配的事实 - 我选择简化命名方面的帖子.

asp.net-core-webapi asp.net-core-2.1

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

SqlNullValueException:Json调用时数据为空

我已经看到了一些有关此问题的线索,但似乎没有一个在我的案例中有所帮助.我正在(使用EF)查询POCO对象,然后尝试通过MVC项目中的Json返回结果.

我的控制器返回一个JsonResult,我控制器的最后两行如下所示:

var results = _context.Churches.Include(c => c.Address).Include(c => c.Address.Country).Where(predicate).ToList();
return Json(results, JsonRequestBehavior.AllowGet);
Run Code Online (Sandbox Code Playgroud)

在调用Json()时的第二行中发生错误.但是,我无法知道导致问题的财产.我在电话会议前查看了结果列表,一切看起来都很好.肯定有null属性,但没有必需属性.

我将在下面包含错误输出(尽管它格式不正确).究竟是什么导致了这个问题似乎并不十分明显 - 我怎样才能找出问题所在?

错误文字

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Data.SqlTypes.SqlNullValueException: Data is Null. This method or property cannot be called on Null values.
at System.Data.SqlTypes.SqlDouble.get_Value()
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo …
Run Code Online (Sandbox Code Playgroud)

c# sql json entity-framework

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

EF Core 是否提供了一种将仅获取属性映射到数据库的方法

我有一个客户端对象,它有一个Fullname我想存储到数据库中的计算值,但不希望/需要它从数据库返回,因为它是从其他字段计算出来的。

public class Client
{
   public int Id {get; set;}
   public string Firstname {get; set;}
   public string Middlename {get; set;}
   public string Lastname {get; set;}

   public string Fullname => this.FormatName(NameFormats.LastFirst);
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我希望它在数据库中,以便报告用户可以使用全名进行打印/列出而无需计算它。但我并不需要它带回我的域模型,因为它总是从计算FirstnameLastname它已经被从数据库中带来的。

是否可以在具有 EF Core 的实体上定义“仅存储到数据库”属性?

ef-core-2.1

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