小编Joh*_*ara的帖子

Asp.Net ScriptManager导致jQuery Widget出现问题

我多年来一直在网站上使用ScriptManager和jQuery滑块小部件,但我最近遇到了一个阻止小部件工作的问题.我设法解决了这个问题,但这比运气专业更不幸运.我希望有人可以提供问题背后的推理,并且该解决方案可能对具有相同问题的其他人有用.

我使用了一个脚本聚合器,它将我的脚本组合在一起 - 这里是它包含的内容 - 为简洁起见,所有代码片段都已配对:

vendor/Modernizr.min.js
vendor/jQuery.3.0.0.min.js
vendor/jQuery-UI.1.12.1.min.js
vendor/jQuery-UI.TouchPunch.min.js
propriertary/LoanSelector.js
DefaultInit.js
Run Code Online (Sandbox Code Playgroud)

这是DefaultInit.js的内容:

$(document).ready(function () {
    loanSelector.init();
});
Run Code Online (Sandbox Code Playgroud)

这是LoanSelector.js的骨干

var loanSelector = function () {

    var pub = {}, $ctl = $("#loan-selector"),
        $sliderAmount = $ctl.find(".slider-amount:first"),
        $widgetAmount = $sliderAmount.find(".widget:first");

    function initControl() {
        initWidgetAmount(100, 2000, 100, $("#hfStartAmount").val());
    }

    function initWidgetAmount(min, max, step, initialVal) {
        $widgetAmount.slider({
        });
    }

    pub.init = function () {
        initControl();
    };

    return pub;
} ();
Run Code Online (Sandbox Code Playgroud)

现在这个工作 - 但只在页面上没有ScriptManager.

添加脚本管理器时,滑块小部件不会加载 - 没有错误 - 什么都没有.

缓存的元素是页面上的永久固定装置 - 因此不是某个时间点不存在的元素的情况.

这是ScriptManager代码:

    <asp:ScriptManager ID="SM" …
Run Code Online (Sandbox Code Playgroud)

javascript asp.net jquery webforms

13
推荐指数
1
解决办法
384
查看次数

Javascript - 内联vs外部脚本 - 有什么区别?

我的页面上散布了一些javascript片段 - 很多都包含在我自己的.js文件中,但是我在网上找到的一些东西直接放在页面上.

我不太熟悉javascript与页面的交互方式 - 添加内联脚本或添加对外部文件的引用是否有区别?

javascript

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

类实例中的静态方法 - 好,坏还是依赖?

我有一个旧的防护类 - 它是const或静态方法,典型的是一个实用类.

然而,最近我开始使用NLog - 所以我的守卫现在可以记录和投掷.NLog的问题是每个调用类(守卫所在的位置)都会创建自己的记录器,因此不是这样的方法:

public static void NotNull<T>(T obj, string param)
{
    if (obj.Equals(null))
        throw new ArgumentNullException(param);
}
Run Code Online (Sandbox Code Playgroud)

我有一个像这样的签名的方法:

public static void NotNull<T>(T obj, string param, Logger logger, LogLevel logLevel)
{
}
Run Code Online (Sandbox Code Playgroud)

现在我的所有方法都包含与记录器相关的两个相同参数,所以我几乎决定依赖注入是一种更好的方法,将记录器传递给构造函数,然后obj进入方法.

我的问题是基于我的经验不足 - 我的新课程不会是静态的,但是我应该将这些方法保留为静态吗?

c# asp.net

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

将字符串拆分为单词,然后重新加入其他数据

我有一种方法可以用来Regex在文本中查找模式string。它可以工作,但是并不合适,因为它要求文本以确切的顺序出现,而不是将短语视为一组单词。

    public static string HighlightExceptV1(this string text, string wordsToExclude)
    {
        // Original version
        // wordsToExclude usually consists of a 1, 2 or 3 word term.
        // The text must be in a specific order to work.

        var pattern = $@"(\s*\b{wordsToExclude}\b\s*)";

        // Do something to string...
    }
Run Code Online (Sandbox Code Playgroud)

此版本对以前的版本进行了改进,因为它确实允许单词以任何顺序进行匹配,但是由于删除了间距并用管道替换了间距,因此最终输出中会出现间距问题

    public static string HighlightExceptV2(this string text, string wordsToExclude)
    {
        // This version allows the words to be matched in any order, but it has
        // …
Run Code Online (Sandbox Code Playgroud)

c# regex asp.net string

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

Asp.Net - ClientCache - 是否会因文件类型而异?

我一直在查看,并在我目前正在进行的开发项目中实现了客户端缓存。

当我使用 Asp.Net 时,我已经使用以下代码直接更新了 web.config 文件:

<staticContent>
  <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
</staticContent>
Run Code Online (Sandbox Code Playgroud)

我还实现了一个“指纹”解决方案,它允许我自动使缓存中的 CSS 和脚本文件过期。

但是,我开始考虑如果图像更改会怎样 - 假设它被修改并重新上传而没有被重命名。在这种情况下,我不一定希望浏览器继续缓存图像的旧版本长达一年。

因此,问题是可以使用 web.config 静态内容部分为不同的文件类型设置不同的缓存持续时间吗?

asp.net iis caching web-config browser-cache

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

结合多个Linq Where语句

我已经创建了一个函数来过滤和排序列表的内容.

这看起来有点"笨拙",但Linq不强.我想知道这个功能是否可以简化,无论是从性能角度还是从审慎的角度来看.

这是代码:

//反序列化XML以创建一类活动行

    var agents = XmlHelper
        .Deserialise<AgentConfigs>("~/Pingtree.xml")
        .Agents
        .Where(x => x.IsActive == true);
Run Code Online (Sandbox Code Playgroud)

//首先 - 获取'直接'代理并订购它们

    var direct = agents
        .Where(x => x.IsDirect)
        .OrderByDescending(x => x.MinPrice);
Run Code Online (Sandbox Code Playgroud)

//第二 - 获取间接代理并对其进行排序

    var agency = agents
        .Where(x => !x.IsDirect)
        .OrderBy(x => x.Priority);
Run Code Online (Sandbox Code Playgroud)

//将2个子列表固定在一起,保留顺序

    Agents = direct.Concat(agency).ToList();
Run Code Online (Sandbox Code Playgroud)

有关如何改进的任何想法?

c# linq asp.net

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

左、中、右对齐 3 个不相等的块

我正在尝试对齐由 3 个内容块组成的顶部菜单。

我想要实现的是:

  • 块 1:左对齐
  • 块 2:水平居中
  • 块 3:右对齐

如果所有 3 个块的大小相同,我可以使用 flexbox(如代码段中所示),但它们不是,因此它不会产生我需要的输出。

相反,flexbox 在 3 个块之间放置相等的空间 - 导致中间块偏离中心对齐。

我想知道这是否可以通过 flexbox 来实现,或者如果不能,另一种解决方案。这需要在生产中稳健运行,因此“网格”解决方案不适用,因为支持不足。

.container {
  margin: 20px 0;
}

.row {
  background-color: lime;
  display: flex;
  justify-content: space-between;
}

.item {
  background-color: blue;
  color: #fff;
  padding: 16px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
  <div class="row">
    <div class="item">left, slightly longer</div>
    <div class="item">center, this item is much longer</div>
    <div class="item">right</div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

css flexbox

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

使用 Linq 来展平嵌套列表而不是 foreach 循环

我有一个经常性的课程 - 我在下面简化了它。

public class SiloNode
{
    public string Key { get; private set; }
    public string Url { get; private set; }
    public List<SiloNode> Children { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)

尽管从理论上讲,它可以永远嵌套,但节点只会向下两层。因此,顶级节点可以有子节点,但子节点不能有子节点。

我有一个主列表,其中包含所有顶级节点及其嵌套子节点。

但是,我需要将所有节点放入一个平面列表中 - 节点 1,然后是它的子节点,然后是节点 2 等。

我在这方面的知识有限,但我可以做一些事情,比如foreach遍历主列表并创建一个新列表,如下所示:

public IEnumerable<SiloNode> GetLinks(IEnumerable<SiloNode> masterList)
{
    var newList = new List<SiloNode>();

    foreach (var node in masterList)
    {
        newList.Add(node);
        newList.AddRange(node.Children);
    }

    return newList;
}
Run Code Online (Sandbox Code Playgroud)

但是,我知道可能有更好的方法,但我只是不知道如何将其转换foreachLinq执行相同操作的语句。换句话说,一起选择父项及其子项。

任何帮助表示赞赏。

c# linq asp.net

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

使用边框时伪元素未充满容器宽度

我有一段 html/css 代表一个带边框的按钮。

该按钮具有覆盖按钮的伪元素 - 这个简单的示例显示了其中之一。

伪元素比原始元素高(使用 px 设置高度),但宽度相同(设置为 100%)。

在当前的设计中,有两个问题没有按照我的预期工作:

  1. 尽管使用了 box-sizing: border-box,伪宽度不包括边框。
  2. 伪元素是绝对定位的(顶部、左侧),但该参考位置位于父边框内。

这在 Chrome 和 Edge 中似乎是相同的,这表明我没有做正确的事情 - 然而,我对盒子大小特别困惑。

.container {
  padding: 50px;
}

.button {
  border: solid 4px red;
  box-sizing: border-box;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  height: 36px;
  padding: 0 16px;
  position: relative;
  z-index: 1;
}

.button::before {
  background-color: rgba(76, 255, 0, 0.8);
  box-sizing: inherit;
  content: "";
  display: block;
  position: absolute;
  top: -4px;
  left: 0;
  height: 44px;
  width: 100%;
  z-index: -1;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
  <a …
Run Code Online (Sandbox Code Playgroud)

html css

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

有没有办法检查页面是否已从外部源登陆

使用c#,我希望个性化页面,如果它是用户遇到的第一页.

我不担心解决方案是否是防弹的,因为该功能纯粹是非常复杂的并且可能会降级.

它必须使用ASP.NET方法,而不是JavaScript.

c# asp.net

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

标签 统计

asp.net ×7

c# ×5

css ×2

javascript ×2

linq ×2

browser-cache ×1

caching ×1

flexbox ×1

html ×1

iis ×1

jquery ×1

regex ×1

string ×1

web-config ×1

webforms ×1