小编Arv*_*tad的帖子

如果是aspx文件中的语句

我有一些基本上看起来像这样的代码:

<div>
    <% if(Something) { %>
        <div id="someUniqueMarkup">
            This markup should not be output if Something==true.

            <units:MyUserControl runat="server"/>
        </div>
    <% }
    else { %>
        <units:MyUserControl runat="server" />
    <% } %>
</div>
Run Code Online (Sandbox Code Playgroud)

取决于Something,其中一个是隐藏的,这很好.但是如果我在用户控件中设置断点,我会注意到它被加载了两次(对于上面的每个控件都加载了一次)并且它的所有逻辑都运行了两次.我当然可以用占位符或多视图来控制它,但是同样的事情似乎适用 - 对于页面上实际存在的每个控件都运行一次OnLoad/ Page_Loadetc.

编辑: 我显示/隐藏这个的原因是因为我需要在控件周围包含一些标记if Something == true.我可以在控件之前和之后的if-else中包装"unique markup"本身,但这对于真正应该像我上面想象的那样简单的东西来说似乎很脏.在这两种情况下,用户控件本身应该完全相同,抱歉它具有令人困惑的属性.

它只是我,还是这只是一个非常不直观的界面?并且只要它在页面上,它实际上是否可以不加载/执行用户控件?

c# asp.net webforms

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

用于常见媒体播放器功能的Windows API?

许多键盘具有常见的媒体功能,如下一个/上一个,播放/暂停和停止.他们是否在Windows中使用了一些现有的API,或者他们是否实现了最流行的媒体播放器(WMP,WinAmp,Spotify ......)的特定功能?我拥有的所有具有此功能的键盘似乎都适用于所有内容,无论键盘的年龄与软件的年龄如何,所以我认为可能已经为此构建了一个API.

如果他们在Windows中使用现有的API,我在哪里可以找到有关它的信息?

只是为了澄清:我不是在寻找一种专门与Windows Media Player交互的方法.我想找到一个魔术按钮来触及所有(支持的)媒体播放器 - 如果存在这样的话.

c# windows

8
推荐指数
2
解决办法
3633
查看次数

异步webrequest超时=>崩溃IIS

我有一个网络应用程序,从外部服务获取数据.请求本身就像下面的代码一样 - 就我所见,非常简单.创建一个请求,异步激活它并让回调处理响应.在我的开发环境中正常工作.

public static void MakeRequest(Uri uri, Action<Stream> responseCallback)
        {
            WebRequest request = WebRequest.Create(uri);
            request.Proxy = null;
            request.Timeout = 8000;
            try
            {
                Task.Factory.FromAsync<WebResponse>(request.BeginGetResponse, request.EndGetResponse, null)
                    .ContinueWith(task =>
                                      {
                                          WebResponse response = task.Result;
                                          Stream responseStream = response.GetResponseStream();
                                          responseCallback(response.GetResponseStream());
                                          responseStream.Close();
                                          response.Close();
                                      });
            } catch (Exception ex)
            {
                _log.Error("MakeRequest to " + uri + " went wrong.", ex);
            }
        }
Run Code Online (Sandbox Code Playgroud)

但是,出于我之外的原因,外部测试环境和生产环境可能无法到达目标URL.很好,我想 - 请求超时不会真的伤害任何人.但是,似乎每次此请求超时,ASP.NET崩溃并重新启动IIS.事件日志向我展示了这个堆栈跟踪:

StackTrace:    at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task`1.get_Result()
   at MyApp.AsyncWebClient.<>c__DisplayClass2.<MakeRequest>b__0(Task`1 task)
   at System.Threading.Tasks.Task`1.<>c__DisplayClass17.<ContinueWith>b__16(Object obj)
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()

InnerException: System.Net.WebException

Message: …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous webrequest .net-4.0

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

多个构建配置可以共享一个配置转换吗?

我正在使用SlowCheetah for XML转换项目中的一堆配置文件.

但是,同样的解决方案是负载平衡设置的一部分,其中一些配置值在不同服务器之间不同(在这种情况下为两个).

我有以下构建配置

  • 调试
  • 发布
  • Release.Test
  • Release.Prod1
  • Release.Prod2

除了其中一个配置文件中的某些值外,Release.Prod1和Release.Prod2中的几乎所有内容都是相同的.有没有办法让我可以Something.Release.Prod.Config在这两个构建配置上使用一个文件,而不是有两个相同的文件(Something.Release.Prod1.ConfigSomething.Release.Prod2.Config)?

......并详细说明:在这种情况下,我正在部署到两个环境,因此一个重复的文件并不是一个巨大的危机.如果您有十台或一百台服务器怎么办?我认为没有理由为什么使用CI服务器(在这种情况下特别是TeamCity)的设置不应该这样做,即使我认为在这样的环境中更常见的自定义设置.

这通常如何处理?

我想我可以在实际转换发生前作为构建步骤来回做一些文件的魔术复制,但这似乎是一个混乱而过于复杂的解决方案.

configuration continuous-integration visual-studio web-config-transform slowcheetah

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

Web API请求对象中的强类型AND任意属性

我有一个看起来很像这样的对象:

public class MyNiceRequest 
{
    [Required]
    public string FirstName { get; set; }
    [Required]
    public string LastName { get; set; }

    public string SomeOptionalField { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的控制器看起来像下面的,仍然很标准:

public MyNiceResponse Post(MyNiceRequest request) {
...
}
Run Code Online (Sandbox Code Playgroud)

从调用应用程序的前端,我想包括比对象中指定的三个更多的字段。这些字段是在运行时生成的(通过管理界面控制),因此我无法将其应用于我的请求类。但是,我还没有找到在控制器中检索它们的好方法。

我可以使我的请求对象(MyNiceRequest)继承自Dictionary<string,string>-然后将它们全部获得,但它们将不会绑定到强类型类的各自属性上(似乎在任何模型绑定器中,像Dictionary一样被绑定在其余部分之前用过的)。另外,更重要的是,验证(对应用程序至关重要)将停止工作。

我已经看到了这个问题,但是它没有给我任何东西,因为- Request.Content.Read...方法给了我空的结果(因为它已经被读取并绑定到模型了?)。

假设我要从前端输入以下字段:

  • FirstName (应该绑定到强类型,无其他地方)
  • LastName (应该绑定到强类型,无其他地方)
  • SomeOptionalField (应该绑定到强类型,无其他地方)
  • RuntimeGenerated1 (应该以字典结尾)
  • RuntimeGenerated2 (应该以字典结尾)

我想要以下两种解决方案之一:

  • 都可以从继承Dictionary<string,string>,但是让字典在强类型属性之后绑定,以使验证生效
  • 在上面有一个单独的属性MyNiceRequest可能类似于,Dictionary<string,string> TheRest { get; set; }然后将其绑定到其余传入属性。

重写前端以将运行时生成的字段作为单独的集合传递是不可行的。

..这完全可以通过重新使用/重新排序现有内容来实现,还是我必须从头开始编写完整的媒体类型格式化程序和/或模型绑定程序?

c# asp.net-web-api

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

如何摆脱.aspx页面中的"默认"表单元素?

作为那个网络标准的极客,我不喜欢<form runat="server">围绕我整个网页的默认设置.我见过很多没有这些的基于ASP.NET的网页,所以看起来它可以删除而不带走任何功能.怎么样?

asp.net webforms

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

File.Delete无法从子文件夹中删除图像

在我们的ASP.NET程序中,用户可以将图像上传到文件夹.图像的位置(包括根目录中的上载文件夹的名称)存储为称为"路径"的变量,即."上传/ fileName.jpg".

要删除图像:

if (File.Exists("~/" + path))
                {
                    File.Delete("~/" + path);
                }
Run Code Online (Sandbox Code Playgroud)

但是,它无法运行,因为它无法验证文件是否存在.通过一些测试,我们注意到它正在"system32"目录中寻找"path".为什么会这样?

c# asp.net

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

如何在变量中存储php页面名称?

我有一个php页面(在本地运行):

http://localhost/webpagefolder/home.php
Run Code Online (Sandbox Code Playgroud)

单击其他页面时,URL会更改以反映该页面.所以它现在变成:

http://localhost/webpagefolder/home.php?here=delivery
Run Code Online (Sandbox Code Playgroud)

因为我选择了送货页面.

如何在变量后面的=之后存储零件?

$name = delivery(或之后显示的任何东西=)

提前致谢

php variables

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

使用regex C#将属性插入HTML元素

string htmlHeaderPattern = ("(<h[2|3])>.*</h[2|3]>)");
MatchCollection matches = Regex.Matches(mainBody, htmlHeaderPattern, RegexOptions.Compiled);
Run Code Online (Sandbox Code Playgroud)

从这段代码中,我得到了一堆h2和h3元素.在这些中,我想插入一个ID属性,其值等于(标题中的内容,减去特殊字符和ToLower()).我还需要将此值作为单独的字符串,因为我需要将其存储以供以后使用.

  • 输入: <h3>Some sort of header!</h3>
  • 输出: <h3 id="#some-sort-of-header">Some sort of header!</h3>
  • 另外,我需要值"#some-sort-of-header"和"某种标题!" 存储在字典或列表中或其他任何内容中.

这是我到目前为止:

string htmlHeaderPattern = ("(<h[2|3]>.*</h[2|3]>)");
MatchCollection matches = Regex.Matches(mainBody, htmlHeaderPattern, RegexOptions.Compiled);
Dictionary<string,string> returnValue = new Dictionary<string, string>();

foreach (Match match in matches)
{

    string idValue = StripTextValue(match.Groups[4].Value);
     returnValue.Add(idValue, match.Groups[4].Value);
}
MainBody = Regex.Replace(mainBody, htmlHeaderPattern, "this is where i must replace all the headers with one with an ID-attribute?");
Run Code Online (Sandbox Code Playgroud)

有没有正则表达式的巫师帮助我?

.net c# regex

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