小编Lei*_*ers的帖子

如何在标记中使用扩展和实用程序方法?

好.这可能是一个非常愚蠢的问题,但无论如何我都会问它......

如何在ASP.Net标记中使用扩展和实用程序方法?例如,(比如说)我有一个名为"ToExampleString()"的DateTime扩展方法(包含在我的Common.Extensions项目中的DateTimeExtensions类中),我想在ListView的ItemTemplate中使用它在我的标记中:

<ItemTemplate>
    <span><%# ((DateTime)Eval("DateStarted")).ToExampleString() %></span>
</ItemTemplate>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

'System.DateTime'不包含'ToExampleString'的定义,并且没有扩展方法'ToExampleString'可以找到接受类型'System.DateTime'的第一个参数(你是否缺少using指令或汇编引用?)

该页面根本看不到扩展方法.

同样,如何让我的页面标记意识到实用程序类:

<span><%# ExampleUtility.ProcessDate(Eval("DateStarted") %></span>
Run Code Online (Sandbox Code Playgroud)

我需要采取哪些步骤来使这些东西工作?我想我忽略了一些明显的东西?

谢谢

asp.net markup extension-methods

7
推荐指数
2
解决办法
2234
查看次数

ASP.Net 4.0 - 如何从ASHX中访问RouteData?

我的网站有一个处理器(FileDownload.ashx),处理所有文件下载请求.

我最近将我的站点迁移到ASP.NET 4.0,现在它广泛使用路由.处理页面请求(aspx)时一切正常,但它不能与我的处理程序一起工作 - 我遇到以下错误:

类型'.Handlers.FileDownload'不从'System.Web.UI.Page'继承.

这是有道理的,因为路由仅在页面中实现.

我需要采取哪些步骤才能将路由和我的.ashx一起使用?我希望能够RouteData.Values从路线中提取.

public class FileDownload : IHttpHandler
{
}
Run Code Online (Sandbox Code Playgroud)

asp.net routes httphandler ashx

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

从控制台应用程序请求MVC页面,传入包含FormsAuthentication cookie的上下文

我有一个控制台应用程序(最终将作为Azure中的工作程序运行)从主ASP.Net MVC站点请求页面,并将其转换为PDF.该站点由表单身份验证保护.

在请求页面的代码中,我传入一个包含有效表单身份验证cookie的HttpContext:

byte[] pdfBytes = PdfHelper.UrlToPdfBytes(url, new HttpContextWrapper(GetHttpContext(url)));
Run Code Online (Sandbox Code Playgroud)

和GetHttpContext方法:

private static HttpContext GetHttpContext(string url)
{
    var stringWriter = new StringWriter();

    var httpRequest = new HttpRequest("", url, "");
    var httpResponse = new HttpResponse(stringWriter);

    var httpContext = new HttpContext(httpRequest, httpResponse);

    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
        2,
        "remoteuser",
        DateTime.Now,
        DateTime.Now.AddMinutes(5),
        false,
        String.Empty,
        FormsAuthentication.FormsCookiePath);

    // Encrypt the ticket.
    string encryptedTicket = FormsAuthentication.Encrypt(ticket);

    // Create the cookie.
    HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket)
    {
        HttpOnly = true//,
        //Domain = new Uri(url).Host
    };

    httpRequest.Cookies.Add(cookie);

    return …
Run Code Online (Sandbox Code Playgroud)

c# pdf asp.net-mvc azure

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

Chart.js - generateLegend()调用结果"undefined不是函数"

当我尝试在我的图表上调用generateLegened()时:

var ctx = $("#chart").get(0).getContext("2d");
var ctxOptions = {
    responsive: false,
    legendTemplate: "<ul>LEGEND</ul>"
};
var chart = new Chart(ctx);

chart.Line(data, ctxOptions);
var legend = chart.generateLegend();
Run Code Online (Sandbox Code Playgroud)

它错误:

未捕获的TypeError:undefined不是函数

在chart.GenerateLegend()行.

我对它的问题感到困惑.该函数显然位于包含的.js文件中.

我正在使用这个脚本://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.1/Chart.min.js

这是一个错误,还是有人能告诉我我做错了什么?

谢谢

chart.js

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

需要RegEx才能返回第一段或前n个单词

我正在寻找RegEx来返回段落中的第一个[n]单词,或者如果段落包含少于[n]个单词,则返回完整的段落.

例如,假设我最多需要前7个单词:

<p>one two <tag>three</tag> four five, six seven eight nine ten.</p><p>ignore</p>
Run Code Online (Sandbox Code Playgroud)

我得到:

one two <tag>three</tag> four five, six seven
Run Code Online (Sandbox Code Playgroud)

对包含少于请求的字数的段落使用相同的RegEx:

<p>one two <tag>three</tag> four five.</p><p>ignore</p>
Run Code Online (Sandbox Code Playgroud)

简单地回复:

one two <tag>three</tag> four five.
Run Code Online (Sandbox Code Playgroud)

我对此问题的尝试产生了以下RegEx:

^(?:\<p.*?\>)((?:\w+\b.*?){1,7}).*(?:\</p\>)
Run Code Online (Sandbox Code Playgroud)

但是,这只返回第一个单词 - "one".它不起作用.我觉得 .*?(在\ w +\b之后)导致问题.

我哪里错了?任何人都可以提出一个有效的RegEx吗?

仅供参考,我正在使用.Net 3.5的RegEX引擎(通过C#)

非常感谢

c# regex

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

SQL:查找产品选项数据的所有可能组合/排列

我有以下产品数据(对于在线商店):

ProductId  ProductOptionGroupId  ProductOptionId
26         1                     13
26         1                     12
44         1                     22
44         1                     23
44         2                     20
44         2                     21
44         3                     25
44         3                     24
Run Code Online (Sandbox Code Playgroud)

ProductOptionGroup将是(例如)"Size"或"Color",而ProductOption将(例如)"Large","Extra Large"和"Red","Black"等.

基本上,我想找到每种产品的所有可能的产品选项组合.例如,对于产品44,我想要:

22, 20, 25  (Large, Black, Cotton)
22, 20, 24  (Large, Black, Nylon)
22, 21, 25  (Large, Red, Cotton)
22, 21, 24  (Large, Red, Nylon)
23, 20, 25  (Extra Large, Black, Cotton)
23, 20, 24  etc...
23, 21, 25
23, 21, 24
Run Code Online (Sandbox Code Playgroud)

每行的每个产品选项组只有一个产品选项.即大型和超大型是互斥的.

理想情况下,我希望这些值连接成每个产品的单个VARCHAR("22,21,25"等).

如何在SQL Server 2005中实现这一目标?

谢谢

sql t-sql

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