小编Kye*_*ica的帖子

KnockoutJS和递归模板

我已经看到了这个问题,并且使用它的方法会在JS控制台上引发错误Uncaught SyntaxError: Unexpected token ).

我试图采用一个递归的类别数组,它具有一个类别数组的Children属性,并使用jquery模板构建它们.我尝试过的每种方法都会导致语法错误.我已经验证了该对象在javascript中正确显示(它来自MVC3,@Html.Raw(Json.Encode(Model.Categories))用于将其放入JS数组中).这是原始的csharp类

public class CategoryTreeModel
{
    public int Id { get; set; }
    public string Name{ get; set; }
    public bool Selected { get; set; }
    public bool HasChildren { get { return Children.Count > 0; } }
    public List<CategoryTreeModel> Children { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这个调用模板第一级的原始html:

<ul class="nav"  data-bind="template: {name: 'categories_template', foreach: categories}">
        </ul>
Run Code Online (Sandbox Code Playgroud)

和模板本身:

<script type="text/html" id="categories_template">
<li id="category_${Id}" class="category_header">${Name}
   {{if $data.HasChildren }}
        <ul data-bind='template: { …
Run Code Online (Sandbox Code Playgroud)

javascript jquery-templates asp.net-mvc-3 knockout.js

7
推荐指数
1
解决办法
4313
查看次数

ServiceStack DELETE请求是默认对象,POST工作正常

我有一个来自Javascript客户端的DTO.当我尝试发送deleteFromService请求对象是空的(看起来它只是刚刚编辑).如果我将方法更改为postToService请求对象,则填充正确.

我使用的是3.9 API.我在这里不知所措.

服务:

public object Post(Order request)
{
    return _orderRepository.InsertOrder(request);
}

public object Delete(Order request)
{
    _orderRepository.DeleteOrder(request.Uuid);
    return true;
}
Run Code Online (Sandbox Code Playgroud)

JS:

//Fails
serviceClient.deleteFromService("order", order, function () { }, deleteFailed);
//Works
serviceClient.postToService("order", order, function () { }, deleteFailed);
Run Code Online (Sandbox Code Playgroud)

更新:

我在ServiceStack源代码中发现了这个问题.它像处理GET一样处理DELETE并创建请求对象而不是正文,就像它对POST一样.

if (httpMethod == HttpMethods.Get || httpMethod == HttpMethods.Delete || httpMethod == HttpMethods.Options)
{
    try
    {
        return KeyValueDataContractDeserializer.Instance.Parse(queryString, operationType);
    }
}
Run Code Online (Sandbox Code Playgroud)

这样做的问题是,ServiceStack JS客户端使用与POST相同的逻辑创建DELETE请求,通过填充您将其发送到正文的数据(技术上是jQuery XHR dataprop),这意味着服务器无法使用获取客户端发送的消息.

我看对了吗?JS客户端的删除是否被破坏?

c# servicestack

7
推荐指数
1
解决办法
1436
查看次数

带有分支过滤器的 GitHub Actions 标签过滤器

GitHub 操作允许使用分支和标签过滤器,但它们似乎不能一起工作。

例如,此工作流在推送到 master带有标签的推送上运行。

name: npm Publish

on:
  push:
    branches:
      - master
    tags:
      - v*
Run Code Online (Sandbox Code Playgroud)

我想设置一个发布工作流,该工作流在标记推送到 master 上运行,而不仅仅是一个或另一个。如何才能做到这一点?

github-actions

7
推荐指数
1
解决办法
794
查看次数

LinqToEntities产生不正确的SQL(Doubled子查询)

我有一个LinqToEntities查询,在创建SQL时双重生成子查询.每次运行查询时,这会导致结果集返回0-3结果.子查询本身会产生一个随机结果(应该如此).这里发生了什么?

LINQ查询:

from jpj in JobProviderJobs
where jpj.JobID == 4725 
&& jpj.JobProviderID == (from jp2 in JobProviderJobs 
                        where jp2.JobID == 4725 
                        orderby Guid.NewGuid() 
                        select jp2.JobProviderID).FirstOrDefault()
select new 
{
    JobProviderID = jpj.JobProviderID
}
Run Code Online (Sandbox Code Playgroud)

生成这个SQL:

SELECT 
[Filter2].[JobID] AS [JobID], 
[Filter2].[JobProviderID1] AS [JobProviderID]
FROM   (SELECT [Extent1].[JobID] AS [JobID], [Extent1].[JobProviderID] AS [JobProviderID1], [Limit1].[JobProviderID] AS [JobProviderID2]
    FROM  [dbo].[JobProviderJob] AS [Extent1]
    LEFT OUTER JOIN  (SELECT TOP (1) [Project1].[JobProviderID] AS [JobProviderID]
        FROM ( SELECT 
            NEWID() AS [C1], 
            [Extent2].[JobProviderID] AS [JobProviderID]
            FROM [dbo].[JobProviderJob] AS [Extent2]
            WHERE 4725 = …
Run Code Online (Sandbox Code Playgroud)

c# sql linq linq-to-entities

6
推荐指数
1
解决办法
273
查看次数

使用Knockout ES5进行子观察

Ryan N在一些 帖子中使用了一种他称之为"sub-observables"的技术,在那里他将观察者的"父母"观察者挂起.它看起来像这样:

var parent = ko.observable("I'm the parent");
parent.sub = ko.observable("I'm the child");

parent()        //="I'm the parent"
parent.sub()    //="I'm the child"
Run Code Online (Sandbox Code Playgroud)

这是一种非常方便的技术,我在几个扩展器中使用它.使用Knockout ES5插件,除非你getObservable()在viewmodel上调用get ,否则它看起来无法访问.在绑定中,这看起来很难看,但有时您只是无法访问父对象所附加的对象.

是否存在用于创建和访问子可观察量的ES5兼容方法?

knockout.js knockout-es5-plugin

6
推荐指数
1
解决办法
351
查看次数

在提出promise.catch之前,Angular日志错误到控制台

我觉得我有点疯狂,但即使我有一个catch定义,Angular似乎也会为一个承诺抛出错误.它将错误抛出到控制台,然后允许catch运行.

这是一个超级简单的小提琴

测试代码:

$q.when(1)
    .then(function() {
        throw new Error("test");
    }).catch(function(error) {
        console.log('error caught', error);
    });
Run Code Online (Sandbox Code Playgroud)

结果控制台

在此输入图像描述 (肮脏的骗子!)

这是一个小提示,显示了我期望发生的事情:catch被引发,并且没有其他错误记录到控制台.我是否未能配置某些内容,或者Angular是否实施了破坏的承诺规范?

promise angularjs angular-promise

6
推荐指数
1
解决办法
1712
查看次数

实体数据模型 - 添加无键表

Visual Studio 给了我一连串错误,我已经陷入了死胡同。我正在尝试将数据库中的现有表添加到我的数据模型中。我知道这张桌子应该有一把钥匙,但它没有,我也无法修复;重新设计不是我的数据库。

当我第一次尝试添加表时,出现此错误:

表/视图 'BT8_GC.dbo.SAVED_QUERY_CATEGORY' 没有定义主键,无法推断出有效的主键。此表/视图已被排除。要使用该实体,您需要查看架构、添加正确的键并取消注释。

好的,好的,我会为它定义键并取消注释。这是我在手动定义键后取消注释的块(我还必须添加 nullable=false 部分):

      <EntityType Name="SAVED_QUERY_CATEGORY">
    <Key>
      <PropertyRef Name="SQC_CAT_ID"/>
      <PropertyRef Name="SQC_USER_ID"/>
    </Key>
    <Property Name="SQC_CAT_ID" Type="int" Nullable="false" />
    <Property Name="SQC_USER_ID" Type="int" Nullable="false" />
    <Property Name="SQC_CAT_DSCR" Type="varchar" MaxLength="50" />
    <Property Name="SQC_SEQ_NO" Type="int" />
  </EntityType>
Run Code Online (Sandbox Code Playgroud)

不,现在设计器不会打开。返回文件,Intellisense 显示此错误:

错误 11002:实体类型“SAVED_QUERY_CATEGORY”没有实体集。

好的...取消注释创建了一个新错误。添加实体集后:

<EntitySet Name="SAVED_QUERY_CATEGORY" EntityType="IssueModel.Store.SAVED_QUERY_CATEGORY" store:Type="Tables" Schema="dbo" />
Run Code Online (Sandbox Code Playgroud)

好极了!设计师开门!仍然没有,因为虽然它显示在商店的 Tables/Views 文件夹下,但它在模型中没有实体类型。无法从我的代码中调用它。我没有任何错误可以解决,所以我尝试创建一个实体集映射,但这导致错误“MetadataWorkspace 中不存在”。

所以这就是我所尝试的。如何将这个设计不佳的表放入我的数据模型中?

sql-server-2005 entity-framework-4 asp.net-mvc-3

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

使用MVC3的Paypal API请求

我一直在整理PayPal的文档,因为所有这些都适用于ASP但不适用于MVC(包括其他方便的集成向导).我已经看过Rick Strahl的常用参考指南,但它也适用于ASP,我没有使用Webforms转换成MVC的经验.

我被困在一个部分,并对另一部分有安全担忧.

首先:您如何将请求实际提交给paypal api?该文档告诉您使用包含密码的表单.

<form method=post action=https://api-3t.sandbox.paypal.com/nvp> 
    <input type=hidden name=USER value=API_username> 
    <input type=hidden name=PWD value=API_password> 
    <input type=hidden name=SIGNATURE value=API_signature> 
    <input type=hidden name=VERSION value=XX.0> 
    <input type=hidden name=PAYMENTREQUEST_0_PAYMENTACTION 
        value=Sale> 
    <input name=PAYMENTREQUEST_0_AMT value=19.95> 
    <input type=hidden name=RETURNURL 
        value=https://www.YourReturnURL.com> 
    <input type=hidden name=CANCELURL 
        value=https://www.YourCancelURL.com> 
    <input type=submit name=METHOD value=SetExpressCheckout> 
</form>
Run Code Online (Sandbox Code Playgroud)

当然这个表格不会进入视图,任何有意识检查您的来源的人都可以窃取您的登录信息?我认为这需要从控制器完成,但我不知道如何从控制器创建这个.HttpWebRequest和WebClient看起来很有希望,但我不知道如何向它们实际添加表单.

第二:即使我确实从用户无法看到它的控制器内部创建了这个表单和api调用,任何有权访问源代码的人(如Web主机或其他开发人员)都能够看到密码.这似乎不是很好的安全性.这是什么做法?如何确保安全?

编辑 对于那些来看的人来说,这就是我最终提交初始请求的方式(将代码压缩到一个块中以便于阅读)

public static string GetResponse(RequestContext context, decimal price)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api-3t.sandbox.paypal.com/nvp");
        //HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api-3t.sandbox.paypal.com/nvp");

        request.Method = "POST";

        UrlHelper url = …
Run Code Online (Sandbox Code Playgroud)

c# security paypal asp.net-mvc-3

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

Ninject:控制器的实体上下文

我知道有人提出了一千零一个与这个话题有关的问题,但我至少经历了十几个问题,但仍然没有联系到这些问题.我正在尝试为实体上下文设置依赖注入.

我总是创建我的实体上下文,就像我在MS教程中看到的那样,如下所示:

public class UserController : Controller
{
    private DbEntities db = new DbEntities();

}
Run Code Online (Sandbox Code Playgroud)

最近的阅读告诉我,这不再是(如果有的话)最佳实践,应该使用依赖注入方法.Ninject经常被提及,但我看到你如何从我拥有的东西转移到Ninject文档中的示例.

我完成后应该看起来像这样,对吧?

public class UserController : Controller
{
    private DbEntities db;

    public UserController(DbEntities context)
    {
        db = context;
    }
}
Run Code Online (Sandbox Code Playgroud)

文档以"在上一步中我们已准备好控制器注入所需的任何内容"开始.因为上一步是安装,所以这很混乱.我使用Nuget方法进行安装,但是当我说"现在加载模块或在RegisterServices方法中定义绑定"时,我不知道它意味着什么.我该怎么做,实体是模块还是绑定?文档感觉很稀疏.

我很抱歉,如果我跳过文档中的一些重要内容,我已经在论坛之间徘徊数小时试图弄清楚这一步.

c# dependency-injection ninject entity-framework-4.1 asp.net-mvc-3

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

旋转加载/等待/缓冲动画的名称

您可以在桌面和Web开发中随处看到这些内容.他们有合适的名词或名字吗?我以为我曾经听过有人称之为"捶击",但谷歌似乎并不同意.

http://preloaders.net/preloaders/5/preview.gif 在此输入图像描述


不确定如何对此进行分类,因为它适用于所有地方.

animation loading-animation

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