我有一个公开所有动词的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) 我需要将一些ASP LinkButtons实例化到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:LinkButton标记中添加一个runat ="server"属性,但我得到一个运行时异常,控件只能放在带有runat ="server"属性的表单标记内.我认为我已经做过了,所以我真的不明白.任何人都可以向我解释我做错了什么,以及我需要做些什么来修复它以便LinkButtons实际上是链接的?
我将一个集合(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"属性,因为我试过没有它,但它仍然无法正常工作.所以我的问题是你如何得到这样的东西?我只想显示包装绑定文本的超链接.看起来这是一件相当简单的事情 - 但还是那么难.救命?
我有一个ASP.NET MVC3项目,主要的aspx页面使用jQuery ajax为其部件进行动态加载.所以基本上当网站加载时,它命中/ Home/Index然后在Index(aspx)视图中,有几行jQuery进行ajax调用(到/ Home/PartOne和/ Home/PartTwo来填充页面的部分内容).
因此,每次加载页面时,它基本上都会执行3个请求:获取索引,获取PartOne,然后获取PartTwo.
问题:为什么第三个请求执行会有某种"等待"时间?我认为这是浏览器并发请求限制,但为什么不在第一个请求完成后执行?
当我通过实验性地将"OutputCache"属性放在"PartTwo"上时,它表现得如预期的那样,它正在快速执行.这暗示问题不在IIS中,而是在此之后以及在它触及我的action方法之前的某个地方.
以下是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
所以我有一个 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 源(组织外部),但不确定如何传递。或者也许我在这里遗漏了一些东西?
asp.net-mvc ×2
performance ×2
ajax ×1
azure-devops ×1
data-binding ×1
fiddler ×1
hyperlink ×1
nuget ×1
postman ×1
runatserver ×1
silverlight ×1
webforms ×1