我和同学正在使用Web API作为我们的后端开发Phonegap应用程序.以前我们在MVC4模板上使用旧的成员函数有一个工作原型.
我们已经找到了一些非常好的教程,介绍如何在普通的mvc控制器上扩展IdentityUser.我们设法让它工作,但转到VS 2013 SPA模板附带的API帐户控制器,我们没有设法让它工作.为了简化我们的问题,这里基本上是我们想要做的.
假设我们有一个像这样的Movie类:
public class Movie
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ApplicationUser User { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我已经创建了这样的ApplicationUser(取自具有个人帐户的VS 2013 MVC模板):
public class ApplicationUser : IdentityUser
{
    public string DisplayName { get; set; }
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection")
    {
    }
    public DbSet<Movie> Films { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我在global.asax上的Application_Start中添加了这一行:
Database.SetInitializer<ApplicationDbContext>(new AppDbInit());
Run Code Online (Sandbox Code Playgroud)
AppDbInit类:
public class AppDbInit : DropCreateDatabaseAlways<ApplicationDbContext>
{ …Run Code Online (Sandbox Code Playgroud) c# asp.net entity-framework asp.net-web-api asp.net-identity
我一直在使用 WebAssembly 在客户端上使用 Blazor。但我想我现在应该尝试服务器端版本,并且我有一个简单的想法想要尝试。
所以我的理解是 Blazor 服务器端使用 SignalR 来“推送”更改,以便客户端重新渲染其页面的一部分。
我想尝试的是数据绑定到单例服务上的属性,如下所示:
@page "/counter"
@inject DataService dataService
<h1>Counter</h1>
<p>Current count: @currentCount ok</p>
<p> @dataService.MyProperty  </p>
<p>
    @dataService.Id
</p>
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
@code {
    int currentCount = 0;
    void IncrementCount()
    {
        currentCount++;
        dataService.MyProperty += "--o--|";
    }
}
Run Code Online (Sandbox Code Playgroud)
启动.cs:
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddRazorPages();
        services.AddServerSideBlazor();
        services.AddSingleton<WeatherForecastService>();
        services.AddSingleton<DataService>();
    }
Run Code Online (Sandbox Code Playgroud)
服务:
namespace bl1.Services
{
public class DataService
{
    public DataService()
    {
        this.Id = System.Guid.NewGuid().ToString();
    }
    public string Id {get;set;}
    public string MyProperty { …Run Code Online (Sandbox Code Playgroud) 我正在为MVC6应用程序设置一个架构,而且我在很大程度上依赖于ViewComponents.我的目标是让每个ViewComponent都有自己的javascript部分,但是从这里阅读, rendersection不能与ViewComponents一起工作,所以我一直试图用另一种方式来做.
在我的_Layout.cshtml中
在关闭body标签之前我有这个部分:
  @{Html.RenderPartial("_LayoutScriptsPartial"); }
Run Code Online (Sandbox Code Playgroud)
在_LayoutScriptsPartial中
<environment names="Development">
  <script src="~/lib/jquery/dist/jquery.js"></script>    
  <script src="~/js/app.js" asp-append-version="true"></script>
</environment>
<environment names="Staging,Production">
      <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.2.0.min.js"
        asp-fallback-src="~/lib/jquery/dist/jquery.min.js">
      </script>
       <script src="~/js/app.min.js" asp-append-version="true"></script>
</environment>
Run Code Online (Sandbox Code Playgroud)
现在在/ Views/Shared/Components/MyComponent/Default.cshtml中的一个组件中,我引用了另一个包含此内容的局部视图,它是一个轮播ViewComponent
 @model MyProj.MyViewModel
 @{Html.RenderPartial("_LayoutScriptsPartial"); }
 @if (!string.IsNullOrEmpty(Model.ImageUrl))
 {
<script type="text/javascript">
    var cssClass= "@Model.cssClass";
    var imageUrl = "@Model.ImageUrl";
    webbCore.carouselSetBackgroundImage(cssClass, imageUrl);
</script>
 }
Run Code Online (Sandbox Code Playgroud)
我必须这样做的唯一原因是我的视图组件可以使用所有必需的js文件.如您所见,我多次引用_LayoutScriptsPartial.当我使用chromes f12调试并观看网络部分时,我没有多次下载相同的javascript文件.我仍然对这个解决方案感觉不好.我环顾四周,没有找到任何好的解决方案来处理我真正喜欢的js文件和ViewComponents.这样的东西适合我的需要.
我的问题:这个解决方案有多好,有什么优点和缺点,有没有更好的方法来处理js文件和ViewComponents?
我正在使用 Angular 和 Ionic 开发一个应用程序。作为后端,我有一个运行 ApolloServer 和 Neo4j(使用grandstarter.io)的节点服务器。在客户端,我目前有一个名为 queries.ts 的文件,我在其中定义了我的 graphql 查询,如下所示:
supplierByName = (value) => {
    const query = gql`
    {
        Supplier(filter: {name: "${value}"}) {
            name
        }
    }
    `;
    return query;
};
Run Code Online (Sandbox Code Playgroud)
我正在使用 apollo 所以我这样做是为了运行我的 graphql 查询
this.apollo.query({
                query: this.queries.supplierByName(supplierName)
            })
            .subscribe(....)
Run Code Online (Sandbox Code Playgroud)
现在,由于不喜欢将我的 graphql 查询作为字符串,我希望将我的查询直接放在 .graphql 文件中。直接在 graphql 文件中工作时更好的工具,老实说,这主要是因为查询现在伤害了我的眼睛:)
我想要这样(文件:querys.graphql):
query supplierByName($value: String) {
 Supplier(filter: { name: "$value}" }) {
    name
 }
}
Run Code Online (Sandbox Code Playgroud)
然后当我用 Apollo 执行 graphql 查询时,我想做这样的事情:
 import supplierByName from './queries.graphql'
 .....
 this.apollo.query({
                query: supplierByName(supplierName)
            })
            .subscribe(....)
Run Code Online (Sandbox Code Playgroud)
并以某种简单的方式将其与 …
我正在使用mvc,我将名为DataModel的类作为我的模型传递给视图:
public class DataModel
{        
    public List<ServerStats> statsPerMonthPerServer { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是类ServerStats:
public class ServerStats
{               
    public string ServerID { get; set; }
    public List<ColumnData> ServerMonthStats { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是ColumnData类:
public class ColumnData
{
    public string Date { get; set; }
    public double Sum { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我已经设法构建我的ModelData对象,如果我调试它,它看起来像我想要的信息,但我无法设法从视图中打印出来.这就是我试图做的事情:
视图:
@model IEnumerable<WebApp.Models.DataModel>
@foreach (var server in Model)
{
foreach (var month in server.statsPerMonthPerServer)
{
    @month.ServerID
    foreach (var column in month.ServerMonthStats)
    {
        @column.Date <br />
        @column.Sum …Run Code Online (Sandbox Code Playgroud) 我试图创建一个与接口列表一起工作的函数,但我想保留这些列表的具体类值.例如:
public interface GUID_OBJECT
{
    string GUID { get; set; }
}
public class Car : GUID_OBJECT
{
    public string GUID { get; set; }
    public string CarSpecifikProp { get; set; }
}
public class Bike : GUID_OBJECT
{
    public string GUID { get; set; }
    public string BikeSpecifikProp { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
class Program
{
    static void Main(string[] args)
    {
        var cars = new List<Car>() { new Car() { GUID = "1", CarSpecifikProp = "carstuff" }, new Car() …Run Code Online (Sandbox Code Playgroud) c# ×3
razor ×2
angular ×1
apollo ×1
asp.net ×1
asp.net-core ×1
foreach ×1
graphql ×1
ienumerable ×1
interface ×1
javascript ×1
typescript ×1