我正在学习asp.net核心1.0.1,我已经成功地连接到了一个SQLite数据库。连接字符串保存在appsettings.json中。我把同一个数据库放在bin文件夹中,一个放在netcoreapp1.0中。
我可以创建一个新的记录,它会被保存。我使用火狐中的SQLite管理器检查了两个数据库,以确定使用的是哪个数据库,但这两个数据库都没有保存的数据。
发布于 2017-01-27 17:18:27
下面是如何将连接字符串从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; }
}
}更新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"));更新控制器
public class HomeController : Controller
{
private AppSettings _AppSettings;
public HomeController(IOptions<AppSettings> settings)
{
_AppSettings = settings.Value;
}添加控制器方法
public async Task ContentAction()
{
var constr = _AppSettings.connection;
var jsonString = "{\"connectionString\""+ constr + "}";
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>输出连接字符串
{"connectionString"Data Source=.;Initial Catalog=OdeToFood;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False}发布于 2017-01-27 15:10:45
如果您只需要向响应体快速输出一些内容,您可以在控制器上添加如下方法.
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>这将输出像这样的值。
{"test":1,"value":false}发布于 2017-01-27 16:45:41
最后,数据库实际上保存在bin\Debug\netcoreapp1.0中。(我找错了文件夹)。
但是我仍然不知道如何在asp.net内核中显示一个简单的消息!
我正在学习asp.net核心+其他东西,只是为了创建一个asp.net数据库驱动的网站,但这并不容易。简单的事情很难实现。
使用wpf,c# + mvvm是很棒的,我希望我可以用它们来进行web开发。但是嘿,我们生活和学习。:-)
谢谢。
https://stackoverflow.com/questions/41896821
复制相似问题