小编Joh*_*udi的帖子

HTTP PUT上的性能降低通过Chrome调用

我有一个公开所有动词的ASP.NET Web API - 方法基本上是空的.

要运行项目,您可以这样做:从VS 2017启动一个新的asp.net Web项目 - 然后选择Web API.创建项目后,执行清理然后重建.打开"ValuesController",在PUT方法中放置一个断点,然后运行你的项目.

以下是API的代码(控制器代码 - 我在PUT方法中添加了一行):

public class ValuesController : ApiController
{
    // GET api/values
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET api/values/5
    public string Get(int id)
    {
        return "value";
    }

    // POST api/values
    public void Post([FromBody]string value)
    {
    }

    // PUT api/values/5
    public void Put(int id, [FromBody]string value)
    {
        var x = "value: " + value;
    }

    // DELETE api/values/5
    public void Delete(int id) …
Run Code Online (Sandbox Code Playgroud)

performance google-chrome fiddler asp.net-web-api postman

11
推荐指数
0
解决办法
998
查看次数

ASP.NET MVC中的LinkBut​​ton

我需要将一些ASP LinkBut​​tons实例化到ASP.NET MVC视图页面上.我尝试了一些东西,但我不能让它们出来.这是我最近的代码化身:aspx文件

<body>
<% using (Html.BeginForm("TitleDetail", "Movies", FormMethod.Post, new{runat="server"})) { %> 

    <ul>
    <% foreach (var disc in Model.Title.tblDiscs) %>
    <% { %>

        <li>
            <asp:LinkButton ID="Play">Link</asp:LinkButton>
        </li>
    <% } %>
    </ul>
<% } %> 
</body>
Run Code Online (Sandbox Code Playgroud)

它在Firefox中呈现的是我正在枚举的集合中每个成员的文本链接的一个实例,但它们不是超链接,只是文本.生成的HTML看起来像这样

<form action="/MyMovies/TitleDetail/239" method="post" runat="server">test title <br />

   <ul>
        <li>

            <asp:LinkButton ID="Play">Link</asp:LinkButton>
        </li>

        <li>
            <asp:LinkButton ID="Play">Link</asp:LinkButton>
        </li>

        <li>
            <asp:LinkButton ID="Play">Link</asp:LinkButton>

        </li>

    </ul>
Run Code Online (Sandbox Code Playgroud)

我尝试在每个asp:LinkBut​​ton标记中添加一个runat ="server"属性,但我得到一个运行时异常,控件只能放在带有runat ="server"属性的表单标记内.我认为我已经做过了,所以我真的不明白.任何人都可以向我解释我做错了什么,以及我需要做些什么来修复它以便LinkBut​​tons实际上是链接的?

asp.net-mvc webforms asplinkbutton runatserver

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

如何使用数据绑定内容/文本设置HyperlinkBut​​ton的包装?

我将一个集合(rss feed)绑定到一个列表框中,如下所示:

<ListBox Margin="0,0,-12,0" ItemsSource="{Binding Items}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Margin="0,0,0,17" Width="432">
                <HyperlinkButton Content={Binding Title} NavigateUri="{Binding Link}" />
                <TextBlock Text="{Binding Description}" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)

这很好用 - 数据显示正确等等.但是现在当我将其更改为使用文本换行时,标题不再显示.

这是有问题的代码.

<ListBox Margin="0,0,-12,0" ItemsSource="{Binding Items}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Margin="0,0,0,17" Width="432">
                <HyperlinkButton NavigateUri="{Binding Link}">
                    <TextBlock Text="{Binding Title}" TextWrapping="Wrap" />
                </HyperlinkButton>
                <TextBlock Text="{Binding Description}" TextWrapping="Wrap" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)

我不认为这是导致问题的"TextWrapping"属性,因为我试过没有它,但它仍然无法正常工作.所以我的问题是你如何得到这样的东西?我只想显示包装绑定文本的超链接.看起来这是一件相当简单的事情 - 但还是那么难.救命?

data-binding silverlight hyperlink silverlight-4.0

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

如何减少/消除AJAX请求中的等待时间/延迟

我有一个ASP.NET MVC3项目,主要的aspx页面使用jQuery ajax为其部件进行动态加载.所以基本上当网站加载时,它命中/ Home/Index然后在Index(aspx)视图中,有几行jQuery进行ajax调用(到/ Home/PartOne和/ Home/PartTwo来填充页面的部分内容).

因此,每次加载页面时,它基本上都会执行3个请求:获取索引,获取PartOne,然后获取PartTwo.

问题:为什么第三个请求执行会有某种"等待"时间?我认为这是浏览器并发请求限制,但为什么不在第一个请求完成后执行?

当我通过实验性地将"OutputCache"属性放在"PartTwo"上时,它表现得如预期的那样,它正在快速执行.这暗示问题不在IIS中,而是在此之后以及在它触及我的action方法之前的某个地方.

以下是Chrome网络探查器的屏幕截图: Chrome网络探查器

这是MvcMiniProfiler上的屏幕截图 - 查看第3行/值,它在执行我的控制器动作代码之前等待500ms. 在此输入图像描述

我的控制器代码看起来像这样.虽然我剪断了实际的代码,但PartTwo的代码非常简单(没有长时间的计算,没有数据库调用等):

public class HomeController : Controller {
    public ActionResult Index() {
        // do something here
        return View();
    }

    public ActionResult PartOne() {
        // do something here
        return View();
    }

    public ActionResult PartTwo() {
        // do something here
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

我的javascript:

$(document).ready(function () {
    $.ajax({
        url: "/Home/PartOne",
        cache: false,
        success: function (data, textStatus, request) {
            $("#TestContainerOne").html(data);
        }
    });

    $.ajax({
        url: "/Home/PartTwo",
        cache: false,
        success: function (data, …
Run Code Online (Sandbox Code Playgroud)

ajax asp.net-mvc performance asp.net-mvc-3 mvc-mini-profiler

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

如何将私有 nuget feed 的凭据添加到 Azure DevOps Pipelines 中?

所以我有一个 Azure DevOps Pipelines,如下所示:

在此输入图像描述

因此,目前,使用 NuGet 4.6.2,我可以使用服务端点添加我的凭据/PAT。这现在正在发挥作用。

但是,我坚持使用 NuGet 4.6.2。如果我升级到最新的 NuGet (5.8),那么我将在 NuGet 恢复期间收到错误:

Unable to find version '<x.y.z>' of package '<my.object.package>'.
  C:\Users\VssAdministrator\.nuget\packages\: 
  Package '<my.object.package.x.y.z>' is not found on source 'C:\Users\VssAdministrator\.nuget\packages\'.
  https://api.nuget.org/v3/index.json: 
  Package '<my.object.package.x.y.z>' is not found on source 'https://<private.nuget.url>: Failed to fetch results from V2 feed at '
  Response status code does not indicate success: 401 (Unauthorized).)
Run Code Online (Sandbox Code Playgroud)

我的猜测是,我需要以某种方式将凭据以不同的方式传递给私有 NuGet 源(组织外部),但不确定如何传递。或者也许我在这里遗漏了一些东西?

nuget nuget-package-restore azure-devops azure-pipelines

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