我在Scott Hanselman的博客中注意到他在使用.Net 5(MVC 6)时在他的视图中使用了以下代码:
@await Html.PartialAsync("_LoginPartial")
Run Code Online (Sandbox Code Playgroud)
与
@Html.Partial("_LoginPartial")
Run Code Online (Sandbox Code Playgroud)
有没有关于何时应该使用哪一个的文件?
如何使用EntityFramework 7在ASP.NET Core Web应用程序中添加和使用SQLite数据库?
当我听到它并创建了我的第一个Web应用程序时,我潜入了ASP.NET Core,我突然想要存储一堆数据,而SQLite似乎是明显的选择.
因为我希望它与我的应用程序保持一致,所以要保持它的轻量级,简单并避免设置单独的数据库.
那么如何在ASP.NET Core中创建SQLite数据库呢?
c# sqlite asp.net-mvc entity-framework-core asp.net-core-mvc
题:
有没有办法将两个不同的路由(带参数)分配给ASP.NET MVC 6应用程序中的同一个控制器?
我试过了:
我尝试使用多个路由属性到控制器类,也尝试使用单个操作,但没有用.
笔记:
我使用的是ASP.NET Core 1.0 RC1.
我想这样做的原因是,我希望api与使用旧网址的旧版移动应用兼容.
例:
[Produces("application/json")]
[Route("api/v2/Log")]
/// The old route is "api/LogFile" which I want to be still valid for this controller.
public class LogController : Controller {
[HttpGet("{id}", Name = "download")]
public IActionResult GetFile([FromRoute] Guid id)
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的示例中:api/LogFile/{some-guid}是旧路由,api/v2/log/download/{some-guid}是新路由.我需要两个路由调用相同的动作.
如何将以下代码移植到.Net Core:
AppDomain.CurrentDomain.DefineDynamicAssembly(
new AssemblyName(
Guid.NewGuid().ToString()),
AssemblyBuilderAccess.RunAndSave);
Run Code Online (Sandbox Code Playgroud)
可能吗?
我知道asp.net核心有一个非常灵活的新配置系统,这很棒.但是我喜欢从.net 4.x开始的基于web.config的配置系统.例如,可以将注释放在web.config文件中,因为它是一个xml文件.对我而言,值得坚持使用xml,而不是采用闪亮的新json方法.[ 更新:我现在明白json方法也支持文件中的注释.]
因此,如果我有一个针对完整框架的Asp.Net核心Web项目,我似乎应该可以使用基于web.config的System.Configuration.ConfigurationManager.AppSettings[key]方法来获取设置.
但是当我尝试时,该值总是返回null(至少在使用VS2015的IIS Express时).
它应该工作正常吗?关于我可能会看到什么的任何想法?
Web.config文件
<configuration>
<appSettings>
<add key="SomeSetting" value="true"/>
</appSettings>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
代码访问设置:
string key = "SomeSetting";
string setting = ConfigurationManager.AppSettings[key];
if (setting == null)
throw new Exception("The required configuration key " + key + " is missing. ");
Run Code Online (Sandbox Code Playgroud)
更新
经过更多的研究,我现在明白为什么它不起作用,但我还没有找到解决方法.根本原因似乎是ConfigurationManager在不同的文件中而不是在web.config中查找配置信息.
这可以通过查看AppDomain.CurrentDomain.SetupInformation.ConfigurationFile财产来看出.在我的情况下,而不是指向website_folder\web.config它,而是指向website_folder\bin\Debug\net461\win7-x64\wwwGiftOasisResponsive.exe.Configwebsite_folder是包含我的网站的文件夹的路径.
文档和intellisense说AppDomain.CurrentDomain.SetupInformation.ConfigurationFile是一个可设置的属性,但当我尝试时,我发现它设置它不会改变它的值.很奇怪.
所以,虽然我现在看到问题是什么,但我似乎无法找到解决问题的方法.
我正在开发一个ASP.Net Core Web应用程序,我需要为另一个(外部)Web服务创建一种"身份验证代理".
我的身份验证代理的意思是我将通过我的Web应用程序的特定路径接收请求,并且必须检查这些请求的标头以获取我之前发布的身份验证令牌,然后将所有请求重定向到相同的请求字符串/内容到我的应用程序将通过HTTP Basic身份验证进行身份验证的外部Web API.
这是伪代码的整个过程
/extapi并在HTTP标头中添加auth-token这就是我现在所拥有的.它似乎工作正常,但我想知道它是否真的应该这样做,或者是否有更优雅或更好的解决方案?从长远来看,该解决方案是否会为扩展应用程序带来问题?
[HttpGet]
public async Task GetStatement()
{
//TODO check for token presence and reject if issue
var queryString = Request.QueryString;
var response = await _httpClient.GetAsync(queryString.Value);
var content = await response.Content.ReadAsStringAsync();
Response.StatusCode = (int)response.StatusCode;
Response.ContentType = response.Content.Headers.ContentType.ToString();
Response.ContentLength = response.Content.Headers.ContentLength;
await Response.WriteAsync(content);
}
[HttpPost]
public async Task PostStatement()
{
using (var streamContent = new StreamContent(Request.Body))
{
//TODO check for token presence and reject if issue …Run Code Online (Sandbox Code Playgroud) 当我尝试使用ASP.NET Core Newsoft JSON.NET序列化某些域对象时,它会抛出异常,因为它正在检测自引用循环.
在ASP.NET 4中,我们以这种方式全局修复它: JSON.NET错误检测到类型的自引用循环
我们如何在ASP.NET Core中解决这个问题?
我正在使用ASP.NET MVC Core RC-2.我有一个针对完整.NET框架的Web项目.我在解决方案中也有一个单独的类库,也是针对完整框架的.
在类库中,我有一个控制器,标有路由属性.我从Web项目中引用了类库.该程序集引用了nuget包Microsoft.AspNetCore.Mvc v. 1.0.0-rc2-final.
我的理解是这个外部控制器会被自动发现,例如 http://www.strathweb.com/2015/04/asp-net-mvc-6-discovers-controllers/
然而,这对我不起作用 - 我浏览到路由的URL,我得到一个空白页面,它没有命中我的控制器断点.
任何想法如何让这个工作?
有趣的是,它似乎适用于针对.NET Core Framework的Web项目,引用了一个同样面向.NET Core的类库.但不是针对完整框架的Web项目,引用标准的.NET类库.
注意:这是MVC Core,它应该支持这种情况,而不需要任何MVC <= 4路由覆盖.
我见过很多使用默认AddMvc()服务的ASP.NET Core Web API项目,但没有意识到AddMvcCore()由于对服务的控制,使用是一种优越的选择.
究竟如何实现通过使用ASP.NET核心的Web API AddMvcCore()和它为什么好?
我想在使用ASP.NET Core MVC构建的API上启用CORS,但所有当前文档都引用该框架的早期版本.
asp.net-core-mvc ×10
asp.net-core ×6
c# ×4
asp.net ×3
.net-core ×1
asp.net-mvc ×1
cors ×1
json.net ×1
razor ×1
sqlite ×1