谁会知道我缺少什么,为什么那些asp-controller和asp-action标签对我不起作用.我正在ASP.NET MVC Core中实现一个项目.
这不会触发:
<a asp-controller="App" asp-action="Trips" class="btn btn-lg btn-success">Go to Trips</a>
Run Code Online (Sandbox Code Playgroud)
剃刀工作正常:
@Html.ActionLink("Go to Trips", "Trips", "App", new object { }, new { @class = "btn btn-lg btn-success" })
Run Code Online (Sandbox Code Playgroud)
我是否需要配置一些服务才能正常工作.而且,哪种方式更受欢迎?Razor很受MVC的欢迎,那些asp标签是一种新的,更好的方式吗?
有谁知道如何传递参数Command使用CommandHandler?我们假设我想从XAML传递字符串硬编码值.我知道如何从XAML传递,但不知道如何在后面的MVVM代码中处理它.如果不需要传递任何参数,下面的代码可以正常工作.
public ICommand AttachmentChecked
{
get
{
return _attachmentChecked ?? (_attachmentChecked = new CommandHandler(() => ExecuteAttachmentChecked(), CanExecuteAttachmentChecked()));
}
}
private void ExecuteAttachmentChecked()
{
}
private bool CanExecuteAttachmentChecked()
{
return true;
}
Run Code Online (Sandbox Code Playgroud)
CommandHandler:
public class CommandHandler : ICommand
{
private Action _action;
private bool _canExecute;
public CommandHandler(Action action, bool canExecute)
{
_action = action;
_canExecute = canExecute;
}
public bool CanExecute(object parameter)
{
return _canExecute;
}
public event EventHandler CanExecuteChanged;
public void Execute(object parameter)
{
_action();
} …Run Code Online (Sandbox Code Playgroud) 有没有办法用 MVVM 模式实现全局异常处理。在我现有的情况下,每当 ViewModel 内部发生错误时,应用程序都不会崩溃,只是“隐藏”导致错误的代码之后发生的其余绑定(当然这对最终用户来说是非常误导的,而不是真的,并且永远不应该那样发生)。我不想为 viewModel 中的每个操作都实现 try catch,我不喜欢错误异常的静默方式,我真的很想为 WPF 应用程序实现一种处理全局错误的方法。有没有办法用 MVVM 做到这一点?
我正在研究ASP.NET Core,我已经成功地使用文件系统实现了日志记录,但是如何使用数据库解决方案实现日志记录功能.如何将EF上下文传递给我的' LoggerDatabaseProvider',仍然将这两个解耦?下面的代码应该清除一些前期问题:
Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddEntityFramework()
.AddEntityFrameworkSqlServer()
.AddDbContext<WorldContext>();
services.AddTransient<WorldContextSeedData>();
services.AddScoped<IWorldRepository, WorldRepository>();
//this one adds service with Dependency Injection that calls 'MyLogger' constructor with two parameters, instead the default one parametereless constructor.
services.AddScoped<ILogger, LoggerFileProvider.Logger>(provider => new LoggerFileProvider.Logger("CustomErrors", Startup.Configuration["Data:LogFilePath"]));
//services.AddScoped<ILogger, LoggerDatabaseProvider.Logger>(provider => new LoggerDatabaseProvider.Logger("CustomErrors"));
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, WorldContextSeedData seeder)
{
string basePath = Startup.Configuration["Data:LogFilePath"];
loggerFactory.AddProvider(new LoggerFileProvider(basePath));
loggerFactory.AddProvider(new LoggerDatabaseProvider());
app.UseStaticFiles();
app.UseMvc(config =>
{
config.MapRoute(
name: "Default",
template: "{controller}/{action}/{id?}",
defaults: new { …Run Code Online (Sandbox Code Playgroud) 我在使用 HTTP POST 和 Oauth 1、RestClient C# 时遇到了困难。我能够使用 HTTP GET 和 Oauth 进行成功调用,但由于某种原因 HTTP Post 失败。我能够使用 Postman 使用相同的凭据成功进行 HTTP POST 调用,但不能使用 RestSharp。也许有人可以帮助我解决这个问题。
以下是 HTTP POST Oauth1 Postman 调用工作的屏幕截图:
上面的 Postman 设置工作得很好,这是我到目前为止在 C# 和 RestClient 中的设置:
public bool CreateShippingTemplate(string storeProviderStoreId, string consumerKey, string consumerSecret, string oAuthToken, string oAuthTokenSecret)
{
string url = "/shipping/templates";
var request = GenerateSecureRequest(url, RequestType.POST, consumerKey, consumerSecret, oAuthToken, oAuthTokenSecret);
var dataObj = new //ShippingTemplate
{
title = "Test Title 2",
origin_country_id = "209",
primary_cost = "1",
secondary_cost = …Run Code Online (Sandbox Code Playgroud) 好像PagedList.Core不包含Html帮助器的扩展方法,所以我不能使用下面的代码:
@Html.PagedListPager(Model, page => Url.Action("Index", new { page }), PagedListRenderOptions.MinimalWithItemCountText)
Run Code Online (Sandbox Code Playgroud)
我能够在以前版本的MVC中成功实现分页,但它在ASP.Net Core中不起作用.下面我附上了IL Dasm参考.我错过了什么,或者还有其他方法可以实现吗?
PagedList.Mvc:
PagedList.Core.Mvc:
model-view-controller pagedlist asp.net-core-mvc asp.net-core
我已经成功地实现了 EntityFramework Core 服务来与 SqlServer 一起工作,Azure 怎么样?
这是我的代码:project.json 依赖项:
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0"
Run Code Online (Sandbox Code Playgroud)
还有我的 Setup.cs:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddEntityFramework()
.AddEntityFrameworkSqlServer()
.AddDbContext<WorldContext>();
}
Run Code Online (Sandbox Code Playgroud)
是否有针对云 Azure 数据库工作的提供商?
这很奇怪.出于某种原因,这失败了:
<div asp-validation-summary="ValidationSummary.ModelOnly"></div>
Run Code Online (Sandbox Code Playgroud)
但是这个工作得很好:
<div asp-validation-summary="All"></div>
Run Code Online (Sandbox Code Playgroud)
任何人都知道为什么?这是完整的代码段:
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h3>Login</h3>
<form method="post" novalidate>
<div asp-validation-summary="All"></div>
@*<div asp-validation-summary="ValidationSummary.ModelOnly"></div>*@
<div class="form-group">
<label asp-for="Username"></label>
<input type="text" asp-for="Username" class="form-control" />
<span asp-validation-for="Username"></span>
</div>
<div class="form-group">
<label asp-for="Password"></label>
<input type="password" asp-for="Password" class="form-control" />
<span asp-validation-for="Password"></span>
</div>
<div class="form-group">
<input type="submit" value="Login" class="btn btn-success" />
</div>
</form>
</div>
Run Code Online (Sandbox Code Playgroud)
有没有办法为.Net核心身份表添加前缀,而不是'AspNetUsers'被创建为数据库名称,我想最终得到'ProjectName_AspNetUsers'
我已经实现了基于数组的堆栈数据结构以及相应的单元测试.这个Stack实现了我的IStack接口.所以目前,我的UT类看起来像这样:
[TestClass]
public class Stack_ArrayBased_Tests
{
//check against empty collection
[TestMethod]
public void IsEmpty_NoElements()
{
var myStack = new Stack_ArrayBased_Example1(10);
var exp = true;
var act = myStack.IsEmpty();
Assert.AreEqual(exp, act);
}
Run Code Online (Sandbox Code Playgroud)
现在,我即将实现基于链接列表的Stack.此Stack将继承自相同的IStack接口.
我想单独测试链表Stack.由于两者都是从相同的接口继承,我应该能够利用已经实现的单元测试,以防止不必要的代码重复.
创建两个单独的Unit Test类的最佳方法是什么,一个用于基于Array的Stack,另一个用于基于Linked List的Stack,它们将使用相同的Unit Test方法?我假设依赖注入将是一个答案,但我会怎么做呢?
有人知道为什么深层复制在我的情况下不起作用,浅层复制/赋值工作得很好:
vm.category = null;
$http.get("/api/category/" + vm.categoryId)
.then(function (response) {
//does not work
angular.copy(response.data, vm.category);
//works just fine
vm.category = response.data;
}, function (error) {
vm.errorMsg = "There was an error retrieving category data: " + error;
});Run Code Online (Sandbox Code Playgroud)
这种深复制方法效果很好:
vm.category = angular.copy(response.data);
Run Code Online (Sandbox Code Playgroud)
为什么:
angular.copy(response.data, vm.category);
Run Code Online (Sandbox Code Playgroud)
不起作用?
asp.net-core ×5
c# ×5
mvvm ×2
wpf ×2
angularjs ×1
api ×1
asp.net-mvc ×1
http ×1
pagedlist ×1
restsharp ×1
unit-testing ×1