C# asp.net核心数据库位置和消息传递
我正在学习asp.net core 1.0.1,并已成功连接到SQLite数据库。连接字符串保存在C# asp.net核心数据库位置和消息传递,c#,asp.net,asp.net-mvc,sqlite,asp.net-core,C#,Asp.net,Asp.net Mvc,Sqlite,Asp.net Core,我正在学习asp.net core 1.0.1,并已成功连接到SQLite数据库。连接字符串保存在appsettings.json中。我将同一个数据库放在bin文件夹中,一个放在netcoreapp1.0中 我可以创建一个新记录并保存它。我在Firefox中使用SQLite管理器检查了这两个数据库,查看使用的是哪一个数据库,但两个数据库上都没有保存的数据 那么,我正在处理的数据库保存在哪里呢 我尝试使用某种messageBox来显示连接字符串路径,但asp.net核心中没有messageBox。
appsettings.json
中。我将同一个数据库放在bin文件夹中,一个放在netcoreapp1.0中
我可以创建一个新记录并保存它。我在Firefox中使用SQLite管理器检查了这两个数据库,查看使用的是哪一个数据库,但两个数据库上都没有保存的数据
// appsettings.json
"ConnectionStrings": {
"MyDatabase": "Data Source=MyDb.sqlite"
}
如果您只需要向响应主体快速输出一些内容,您可以在控制器上添加如下方法
public async Task ContentAction()
{
var jsonString = "{\"test\":1,\"output\":false}";
byte[] data = Encoding.UTF8.GetBytes(jsonString);
Response.ContentType = "application/json";
await Response.Body.WriteAsync(data, 0, data.Length);
}
<div>
<a asp-controller="Home" asp-action="ContentAction" class="btn btn-success confirmCreate">
Generate Response
<i class="fa fa-angle-left"></i>
</a>
</div>
然后可以从视图中调用此控制器方法,如下所示
public async Task ContentAction()
{
var jsonString = "{\"test\":1,\"output\":false}";
byte[] data = Encoding.UTF8.GetBytes(jsonString);
Response.ContentType = "application/json";
await Response.Body.WriteAsync(data, 0, data.Length);
}
<div>
<a asp-controller="Home" asp-action="ContentAction" class="btn btn-success confirmCreate">
Generate Response
<i class="fa fa-angle-left"></i>
</a>
</div>
最后,数据库实际上保存在bin\Debug\netcoreapp1.0中(我找错了文件夹) 但是我仍然不知道如何在asp.net内核中显示一条简单的消息 我正在学习asp.net核心+其他内容,只是为了创建一个asp.net数据库驱动的网站,但这并不容易。简单的事情很难实现 使用wpf、c#+mvvm是很棒的,我希望我可以用它们来代替web开发。但是,嘿,我们生活和学习。:-)
谢谢。以下是如何将appsettings.json中的连接字符串输出到视图中 首先,这是如何在appsettings.json中定义我的连接字符串
"database": {
"connection": "Data Source=.;Initial Catalog=OdeToFood;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"
}
创建一个类来存储连接字符串
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace CoreTest
{
public class AppSettings
{
public string connection { get; set; }
}
}
{"connectionString"Data Source=.;Initial Catalog=OdeToFood;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False}
更新startup.cs文件
确保构造函数正在读取appsettings.json文件
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
将这些行添加到ConfigureServices
services.AddOptions();
services.Configure<AppSettings>(Configuration.GetSection("database"));
从视图中调用控制器方法
<div>
<a asp-controller="Home" asp-action="ContentAction" class="btn btn- success confirmCreate">
Generate Response
<i class="fa fa-angle-left"></i>
</a>
</div>
你需要发布相关的代码。稍微改进的格式Hi Yaz。当你说“我可以创建一个新记录并保存它”时,你是如何证明该记录已保存的?你是否停止应用程序,重新启动它,然后检索记录?当应用程序运行时,我在Firefox SQLite管理器中打开SQLite数据库,看到记录已保存。SQLite db位于bin\Debug\netcoreapp1.0中。感谢您的回复。我按原样尝试了你的代码,它运行正常。但是我需要显示连接字符串,所以我这样做了:stringconnection=Configuration.GetConnectionString(“MyDatabase”);byte[]data=Encoding.UTF8.GetBytes(连接);Response.ContentType=“application/json”;wait Response.Body.WriteAsync(data,0,data.Length);但我得到ArgumentNullException:字符串引用未设置为字符串的实例。参数名称:sThanks pforsshoff,我正在处理您的代码。我将在完成后发回。:-)您的代码非常适合此任务。我从你那里学到了很多新东西。我非常感谢你的帮助。祝你一切顺利。耶,你能把这个答案标记为有用吗?事实上,如果他们都有帮助的话。非常感谢。我做了,但它说投票已经记录在案,投票数少于15票等等。。谢谢我是新来的,我照上面说的做了,谢谢。
{"connectionString"Data Source=.;Initial Catalog=OdeToFood;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False}