我的视图包含一个ListView,它显示来自互联网的一些数据,我创建了一个异步方法来加载数据并在我的viewmodel的构造函数中调用该方法.它有一个警告提示我现在使用await关键字.
在构造函数中异步加载数据的任何其他解决方案?
这两种AOP框架的优点和缺点是什么?我正在使用Unity作为我的aop框架,但是我认为诸如postharp之类的编译时aop框架可能比运行时aop框架具有更好的性能?它看起来像运行时aop框架使用反射来实现注入.
定义请求的大多数属性都是定义的HttpClientHandler,这个类是这样定义的类的子HttpMessageHandler类:
public abstract class HttpMessageHandler : IDisposable
{
protected internal abstract Task<HttpResponseMessage> SendAsync
(HttpRequestMessage request, CancellationToken cancellationToken);
public void Dispose();
protected virtual void Dispose (bool disposing);
}
Run Code Online (Sandbox Code Playgroud)
书中<C#5.0 in a nutshell>说,SendAsync在方法HttpMessageHandler时,我们称之为叫HttpClient的SendAsync方法.但是HttpClient该类还定义了一个SendAsync方法,当我们呼吁的一个实例这种方法HttpClient,这SendAsync是叫什么?
我正在创建自己的IntelliSense Presenter,因为Visual Studio2012支持更改主题,所以我希望在更改主题时可以自动更改演示者的背景颜色.有没有办法跟踪主题更改事件,或获取Visual Studio的当前颜色主题?
我想将动态数据加载到我的jquery数据表中.这意味着,在我从服务器获取json数据之前,我不知道它包含哪些字段,但我确定json是有效的.它看起来像下面,
"data": [
{
"first_name": "Airi",
"last_name": "Satou",
"position": "Accountant",
"office": "Tokyo",
"start_date": "28th Nov 08",
"salary": "$162,700"
},
{
"first_name": "Angelica",
"last_name": "Ramos",
"position": "Chief Executive Officer (CEO)",
"office": "London",
"start_date": "9th Oct 09",
"salary": "$1,200,000"
}
Run Code Online (Sandbox Code Playgroud)
]
有时,它可能只包含'first_name'和'last_name'.
我搜索了很长时间,所有样本都指定了'aoColumnsDef'或'aoColumns'.但我不知道确切的文件.有没有办法使用json中的字段名称作为表的标题和字段值作为表的主体来填充jquery数据表?例如,json数据只包含两个字段'first_name'和'last_name',该表应包含两列'first_name'和'last_name'.如果json包含3个字段,则表应显示3列.我确定"数据"中的所有项目都具有相同的字段.
提前致谢!
我使用kenod UI来创建我的Web UI.我有一个列模板,如下所示
var template = "<input id='details-button' type='image' src='images/detail_button.png' ng-click='showDetals(this.dataItem)'/>#: Contact #";Run Code Online (Sandbox Code Playgroud)
我想在每次单击详细信息按钮时弹出一个窗口,弹出窗口的位置应该在我单击的按钮的右下角.这就是我现在所做的
var popup = $("#detailsPopup");
popup.kendoPopup({
anchor: "#details-button",
origin: "bottom right",
});Run Code Online (Sandbox Code Playgroud)
但它不起作用.每次,弹出窗口显示在第一行按钮的右下角,而不是我点击的按钮的右下角.
检查生成的html,所有按钮的id都相同(详细信息按钮).因此弹出窗口始终显示与第一个详细信息按钮相关.
更新:
这是我改变的解决方案,但仍然无效.
function popupDetails(item) {
detailsGrid.kendoGrid({
columns: ...,
dataSource: item.Details
});
var anchor = "#details-button" + item.id;
var popup = $("#details-popup");
popupp.kendoPopup({
anchor: anchor,
origin: "bottom right",
});
popup.data("kendoPopup").open();
}Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
在索引选项中,"索引这些位置"中有一个位置列表,有没有办法通过c#将从我的应用程序创建的文件夹添加到列表中?
我想将本地文件夹中的本地html文件加载到webview,但是WebView不支持'ms-aspx:///'protocal,我找到了一个解决方案来读取要传输的html文件,然后将其转换为字符串,使用NavigateToString方法加载html,效果很好.但是,如果html文件中有图像,图像无法显示,任何人都可以提供帮助?
我正在用ef学习asp.net核心剃刀页面.我想用我的表实现分页,我已经查看了本教程
https://docs.microsoft.com/en-us/aspnet/core/data/ef-rp/sort-filter-page?view=aspnetcore-2.1
但它只支持pre和next,我已经研究了很长时间,所有的解决方案都与asp.net核心mvc有关,但我使用的是razor页面,我的项目中没有控制器,有什么想法可以实现?
这就是我想要实现的效果
<form method="get" asp-page="./Index">
<nav aria-label="Page navigation">
<ul class="pagination">
<li>
<a href="#" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
@{
var totalPages = Model.Products.Count % 2 == 0 ? Model.Products.Count / 2 : Model.Products.Count / 2 + 1;
}
@for (int i = 1; i <= totalPages; i++)
{
<li><a asp-page="./Index" asp-route-id="@i">@i</a></li>
}
<li>
<a href="#" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
</ul>
</nav>
</form>
Run Code Online (Sandbox Code Playgroud)
cshtml.cs
public async Task OnGetAsync(string sortOrder, string searchString, string shopString, string statusString, int page)
{}
Run Code Online (Sandbox Code Playgroud) 请参考下面的代码.
public MainViewModel()
{
LongRunningOperationCommand = new RelayCommand(ExecuteLongRunningOperationCommand);
}
private void ExecuteLongRunningOperationCommand()
{
Test();
}
private async Task Test()
{
Log += "Command begin: " + DateTime.Now + "\r\n";
Log += "Command thread: " + Thread.CurrentThread.ManagedThreadId + "\r\n";
var getStringAsync = GetStringAsync();
Log += "Work in Command...\r\n";
Log += "Work in Command which not related to the result of async method will complete: " + DateTime.Now + "\r\n";
Log += "Work in Command which not related to the result of …Run Code Online (Sandbox Code Playgroud) 我知道论坛里有很多类似的问题,但我没有找到和我一样的问题.请看下面的代码.
public class MainViewModel
{
public MainViewModel()
{
Test();
}
async Task<string> Test()
{
var v = await TaskCaller();
return v;
}
Task<string> TestTask()
{
new Task<string>(() =>
{
Thread.Sleep(2000);
return "TestTask";
});
return null;
}
Task<string> TaskCaller()
{
var task = new Task<string>(() =>
{
return TestTask().Result;
});
return task;
}
}
Run Code Online (Sandbox Code Playgroud)
永远不会达到return v语句.我需要TaskCaller的结果来做更多的过程.
我的viewmodel包含很多命令,它使我的viewmodel非常大.我想从viewmodel中分离出我的命令.目前,我的解决方案是为每个命令创建一个类,如下所示,
public class TestCommand : CommandBase
{
private MainViewModel vm;
public TestCommand(MainViewModel vm)
{
this.vm = vm;
}
public override bool CanExecute(object parameter)
{
return true;
}
public override void ExecuteCommand(object parameter)
{
vm.logger.log(...);
...
}
}
Run Code Online (Sandbox Code Playgroud)
由于我需要在ViewModel中使用某些方法或属性,因此我必须将viewmodel作为参数传递给命令.对于这个解决方案,有两个缺点:1.项目中有很多命令文件,如果一个视图中命令的平均计数为15,则10个视图将在项目中有150个命令文件; 2.将ViewModel作为参数传递给命令需要一些属于私有的属性或方法必须更改为public; 将viewmodel传递给命令也很奇怪.
有没有其他解决方案来分离命令?
c# ×7
wpf ×4
async-await ×3
asynchronous ×3
architecture ×2
javascript ×2
jquery ×2
.net ×1
.net-4.5 ×1
aop ×1
asp.net-core ×1
datatables ×1
html ×1
httpclient ×1
intellisense ×1
json ×1
kendo-grid ×1
kendo-ui ×1
mvvm ×1
razor ×1
webview ×1
windows-8 ×1