我被分配将应用程序从MVC迁移到ASP.net Core,我是ASP.net Core的新手.在MVC中,我们BundleConfig.cs在那里添加了对css和js文件的引用,它在ASP.net Core中是如何工作的?假设我创建了一个test.js和一个MyStyle.css类,这是在每个视图中添加引用的最佳方法吗?我应该把.js和.css里面的文件wwwroot/js和wwwroot/css?
我正在尝试配置一个新项目来使用Entity Framework 6,ASP.net Core我正在使用完整的.net框架以便能够使用Entity Framework 6. 这是一个以前在MVC中的项目,我需要将其迁移到Core。这就是我所做的(我有两个项目,一个项目Asp.net Core和一个class library包含一些类和DBContext class):
appsettings.json:
"Data": {
"ConnectionStrings": {
"MyConnection": "Server=namedatabase.database.secure.windows.net,1433;Database=database_Name;User ID=blahblah;Password=blahblah;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;"
}
}
Run Code Online (Sandbox Code Playgroud)
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddScoped<MyDBContext>(_ => new LIGDataContext(Configuration.GetConnectionString("MyConnection")));
}
Run Code Online (Sandbox Code Playgroud)
我将DBContext班级分开class library(.dll):
public class MyDBContext: DbContext
{
public MyDBContext(string connString): base(connString)
{
}
Run Code Online (Sandbox Code Playgroud)
但是我的asp.net Core项目的一些控制器中有这段代码,我不知道现在如何引用该DBContext实例...显然是在询问connString参数,这是我第一次这样做,我不确定这是执行此操作的最佳方法,但我需要做什么不再可用ConfigurationManager?Core这是 Entity Framework 6,没有 Entity …
这段代码位于MVC,我需要做类似的事情,但是在ASP.net Core, usingEntity Framework Core或 with DataAnnotations(我已经将参数从 更改DbModelBuilder(MVC Entity Framework)为ModelBuilder(Entity Framework Core))
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>(); //error: Conventions is not recognized
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<tbl_Line>()
.HasMany(d => d.tbl_Policy)
.WithRequired(c => c.tbl_Line) //error WithRequired not recognized
.HasForeignKey(c => c.int_lineID);
}
Run Code Online (Sandbox Code Playgroud)
当我尝试在以下位置使用它时出现一些错误Entity Framework Core:
1-'ModelBuilder' does not contain a definition for 'Conventions' and no extension method 'Conventions' accepting a first argument of type 'ModelBuilder' could be found …
我正在尝试从MVC应用程序上传文件到blob Azure,我正在按照本教程,我陷入了这个片段:
using (var fileStream = System.IO.File.OpenRead(@"path\myfile"))
{
blockBlob.UploadFromStream(fileStream);
}
Run Code Online (Sandbox Code Playgroud)
如何制作@"path\myfile"动态?如何检索我的文件的真实路径放在那里?我也接受任何其他建议上传到blob :)
UPDATE
建议我在我的视图中添加代码:
@model RiPSShared.Models.RiPSModels.AgencyNote
<h2>PostFile</h2>
<form action="@Url.Action("PostFile", "AgencyNotes", new { NoteId=Model.aut_id})" method = "post" enctype="multipart/form-data">
<label for="file1"> File name:</label>
<input type="file" name="file" id="file1" />
<input type="submit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
完整的动作控制器:
public ActionResult PostFile(HttpPostedFileBase file, int NoteId)
{
CloudBlockBlob blockBlob = container.GetBlockBlobReference(path);
using (Stream fileStream = file.InputStream)
{
blockBlob.UploadFromStream(fileStream);
}
return RedirectToAction("Index");
}
Run Code Online (Sandbox Code Playgroud) 我正在使用DropboxClientMVC项目中的对象并且工作正常,但是我需要在ASP.NET Core中使用它,当我尝试在ASP.NET Core中使用完全相同的代码时,我遇到了一些编译时错误,这些是错误:
"Object"类型在未引用的程序集中定义.您必须添加对程序集'mscorlib,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e,Retargetable = Yes'的引用.
"IDisposable"类型在未引用的程序集中定义.您必须添加对程序集'mscorlib,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e,Retargetable = Yes'的引用.
'DropboxClient':在using语句中使用的类型必须可以隐式转换为'System.IDisposable'
"任务<>"类型在未引用的程序集中定义.您必须添加对程序集'mscorlib,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e,Retargetable = Yes'的引用.
"Object"类型在未引用的程序集中定义.您必须添加对程序集'mscorlib,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e,Retargetable = Yes'的引用.
我认为所有这些错误都与我在ASP.net Core中需要做的一些配置有关,在MVC中代码运行没有问题.
这是代码:
public IActionResult Index()
{
using (DropboxClient client = new DropboxClient("dddddddddddddsdadffsdf343"))
{
var full = client.Users.GetCurrentAccountAsync();
var result = full.Result.Email;
var other = full.Result.Country;
var other2 = full.Result.Name;
}
return View();
}
Run Code Online (Sandbox Code Playgroud)
为了让这段代码运行,我需要在ASP.net Core中进行哪些更改?
我正在尝试下载 Dropbox 中的 pdf 文件,我需要将其保存到本地计算机(例如任何文件夹)中C:\Users\User\Desktop。这是我一直在使用的代码:
public void DownloadPdf()
{
DropboxClient client2 = new DropboxClient("cU5M-asdgfsdfsdfds3434435dfgfgvXoAMCFyOXH");
string folder = "MyFolder";
string file = "Test PDF.pdf";
var response = client2.Files.DownloadAsync("/" + folder + "/" + file);
}
Run Code Online (Sandbox Code Playgroud)
如何将该文件保存到本地驱动器中?接下来我需要做什么?它不会抛出任何错误,但我什至不确定路径是否会进入 Dropbox 中的 pdf 文档。我在 ASP.net Core 中使用 Dropbox.Api。
这是我的代码:
public ActionResult PostFile(HttpPostedFileBase file, int NoteId)
{
FileInfo f = new FileInfo(file.FileName);
string fullname = f.FullName; //fullname changes depending on if I am using IE or Chrome
}
Run Code Online (Sandbox Code Playgroud)
这是我的View(PostFile.cshtml):
@model RiPSShared.Models.RiPSModels.AgencyNote
<form action="@Url.Action("PostFile", "AgencyNotes", new { NoteId=Model.aut_id})" method = "post" enctype="multipart/form-data">
<label for="file1"> File name:</label>
<input type="file" name="file" id="file1" />
<input type="submit" value="Submit" />
</form>
Run Code Online (Sandbox Code Playgroud)
为什么我为file参数获取不同的路径?当我使用IE是正确的路径("C:\\Users\\User\\Desktop\\sds - Copy (5).docx")但是当使用Chrome时我得到了错误的路径:C:\Program Files (x86)\IIS Express\
我使用变量fullname来获取路径值...
我在Azure存储中有一个Blob容器,然后是一个文件夹,然后是一个子文件夹,然后是不同的文件(ContainerName/Folder1/Subfolder1/files...).如何读取该Subfolder1目录中的所有文件?假设我有一些pdf文件,我需要在我的应用程序中获取它们,我该怎么做?
我需要将MVC项目迁移到中.net Core,我知道该项目System.Web已从中删除ASP.net Core,我需要获取当前内容,url并根据其值显示相同的内容,layout但要进行一些更改。
这是我在MVC中拥有的代码,我需要转换为ASP.net Core:
public class LIGCalculators
{
public static bool LargePano(Uri url)
{
var path = url.AbsolutePath.ToLower();
if (path == "/")
{
return true;
}
if (path.Contains("Home"))
{
return true;
}
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
Layout视图(MVC),Request.Url不适用于Core:
@if (LIGCalculators.LargePano(Request.Url))
{
<div class="blue"></div>
<div class="pano-bg"></div>
<div class="bgs">
<div class="orangeL"></div>
<div class="blue2L"></div>
</div>
}
else
{
<div class="blue-big"></div>
<div class="small-pano-bg"></div>
<div class="bgs">
<div class="orange"></div> …Run Code Online (Sandbox Code Playgroud) 我正在开发.net Core项目,使用.net Core框架,我想使用带有.net Core的DropNet包,所以我net452在我的内部添加了对框架的引用project.json:
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8",
"net452"
]
}
},
Run Code Online (Sandbox Code Playgroud)
现在当我尝试在我的控制器类中创建DropNet客户端对象时,我遇到了一个错误:
Error CS0012 The type 'IWebProxy' is defined in an assembly that is not referenced.
You must add a reference to assembly 'System, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089'. Test3..NETCoreApp,Version=v1.0
Run Code Online (Sandbox Code Playgroud)
好的,为了修复我已安装microsoft.netcore.portable.compatibility包的错误,错误消失了,问题是,当我这样做并执行项目并尝试访问我从控制器操作返回的View使用DropNet我得到了FileNotFoundException:
FileNotFoundException: Could not load file or assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. The system cannot find the file specified.
我只有那个视图才有问题,这是我的行动方法:
public IActionResult Test()
{
DropNetClient client = new DropNetClient("gsfgsgsfg438", …Run Code Online (Sandbox Code Playgroud) 我有一个带有一些文本的按钮,它在一行中显示文本,这是可以的,但是当我使用来display:block使按钮居中时,按钮居中,这很好,但是其中的文本有一个换行符并分为两行,我只希望文本显示在一行中:这是我的代码:
<div class="MyClass"><a type="button" style="margin:auto; display:block" class="ButtonLink" href="@Url.Action("MyAction","MyController")">Selected Now</a></div>
Run Code Online (Sandbox Code Playgroud)
当我有这样的代码时,文本显示在一行中,但是我需要将按钮居中:
<div class="MyClass"><a type="button" class="ButtonLink" href="@Url.Action("MyAction","MyController")">Selected Now</a></div>
Run Code Online (Sandbox Code Playgroud)
这就是我要的:
这就是当我将按钮居中时文本的显示方式:
我需要做什么?
我需要检查是否检查了a的checkbox旁边textbox,但是我在代码中从那个条件得到的结果总是正确的,所以这是错误的.
我已经使用next()jQuery中的方法进行了一些测试.我指着下一个checkbox接近textbox,这工作正常.
无论是否checkbox选中,此代码始终返回true :
if ($(this).next('.isFileSelected:checkbox:checked')) {
//do some other stuff...
}
Run Code Online (Sandbox Code Playgroud)
我也尝试了这些更改,但我得到了相同的结果:
if ($(this).next('input:checkbox:checked')) {
//do some other stuff...
}
Run Code Online (Sandbox Code Playgroud)
如何使用jQuery或纯JavaScript代码完成此操作?
我直接在Razor上查看Linq查询以获取人员列表的年龄平均值...当该列表为null时,它会抛出一个空引用异常...当列表不为空时,代码工作正常.
这是Razor View上的代码片段(从这里抛出异常):
<label> Age average:</label>@Model.DefaultIfEmpty().Average(p => p.Age)
Run Code Online (Sandbox Code Playgroud)
这是在Controller类上创建列表的代码片段(当没有巧合时抛出Exception,我的意思是当列表为null时):
public ActionResult Index(int? age, string name)
{
var people = db.People.ToList();
if (age != null && !string.IsNullOrEmpty(name))
{
people = db.People.Where(x => x.Age >= age && x.Name.Contains(name)).ToList();
}
else if (age != null && string.IsNullOrEmpty(name))
{
people = db.People.Where(x => x.Age >= age).ToList();
}
else if (age == null && !string.IsNullOrEmpty(name))
{
people = db.People.Where(x => x.Name.Contains(name)).ToList();
}
return View(people);
}
Run Code Online (Sandbox Code Playgroud)
如果列表为空,我怎么能在Razor View中将默认值设置为0?我一直在尝试使用合并算子?但我不确定如何做到这一点,是在Razor View中.
c# ×11
asp.net-mvc ×9
asp.net-core ×4
asp.net ×2
css ×2
dropbox-api ×2
html ×2
jquery ×2
razor ×2
azure ×1
blob ×1
javascript ×1
linq ×1