我们目前正在使用ASP.NET Core重写/转换我们的ASP.NET WebForms应用程序.尽量避免重新设计.
我们HttpContext在类库中使用了一个部分来检查当前状态.如何HttpContext.Current在.NET Core 1.0中访问?
var current = HttpContext.Current;
if (current == null)
{
// do something here
// string connection = Configuration.GetConnectionString("MyDb");
}
Run Code Online (Sandbox Code Playgroud)
我需要访问它才能构建当前的应用程序主机.
$"{current.Request.Url.Scheme}://{current.Request.Url.Host}{(current.Request.Url.Port == 80 ? "" : ":" + current.Request.Url.Port)}";
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Code First构建一个EF实体,并EntityTypeConfiguration使用流畅的API.使用Unique Constraint创建主键很容易,但不是这样.我看到旧帖子建议为此执行本机SQL命令,但这似乎打败了目的.这可能与EF6有关吗?
我有一个表,其中一列是datetime类型的"Date".我们决定为该列添加默认约束
Alter table TableName
alter column dbo.TableName.Date default getutcdate()
Run Code Online (Sandbox Code Playgroud)
但这给了我错误:
"."附近的语法不正确
有没有人在这里看到任何明显错误的东西,我错过了(除了有一个更好的名称列)
一旦编译完成,它们之间是否存在差异:
delegate { x = 0; }
Run Code Online (Sandbox Code Playgroud)
和
() => { x = 0 }
Run Code Online (Sandbox Code Playgroud)
?
我正在尝试将varchar列的长度从255个字符更新为500而不会丢失内容.我之前已经删除并重新创建了表格,但我从未接触过alter statement,这是我认为我需要用来做这个的.我在这里找到了文档:ALTER TABLE(Transfact-SQL)但是我无法做出正面或反面.
到目前为止,我有以下内容(基本上没有任何遗憾):
alter table [progennet_dev].PROGEN.LE
alter column UR_VALUE_3
Run Code Online (Sandbox Code Playgroud)
我该如何处理?那里有没有更好的文件说明(我做了一些搜索示例声明但是空了)?
对于从Web API 2控制器返回,如果响应正常(状态200),我可以返回带有响应的内容,如下所示:
public IHttpActionResult Get()
{
string myResult = ...
return Ok(myResult);
}
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我想在可能的情况下使用内置的结果类型:https://msdn.microsoft.com/en-us/library/system.web.http.results(v = vs.118).aspx
我的问题是,对于另一种类型的响应(不是200),如何用它返回消息(字符串)?例如,我可以这样做:
public IHttpActionResult Get()
{
return InternalServerError();
}
Run Code Online (Sandbox Code Playgroud)
但不是这个:
public IHttpActionResult Get()
{
return InternalServerError("Message describing the error here");
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望将其推广,以便我可以使用IHttpActionResult的任何实现发回消息.
我是否需要这样做(并构建我自己的响应消息):
public IHttpActionResult Get()
{
HttpResponseMessage responseMessage = ...
return ResponseMessage(responseMessage);
}
Run Code Online (Sandbox Code Playgroud)
或者,还有更好的方法?
.NET中WebClient的HttpWebRequest类与.NET 之间有什么区别?他们都做了非常相似的事情.实际上,为什么不将它们合并到一个类中(太多的方法/变量等可能是一个原因,但.NET中有其他类违反了该规则).
谢谢.
如何配置我的mvc/webapi项目,以便从剃刀视图调用的webapi方法在未经授权时不返回登录页面?
它是一个MVC5应用程序,它也有通过javascript调用的WebApi控制器.
以下两种方法
[Route("api/home/LatestProblems")]
[HttpGet()]
public List<vmLatestProblems> LatestProblems()
{
// Something here
}
[Route("api/home/myLatestProblems")]
[HttpGet()]
[Authorize(Roles = "Member")]
public List<vmLatestProblems> mylatestproblems()
{
// Something there
}
Run Code Online (Sandbox Code Playgroud)
通过以下角度代码调用:
angular.module('appWorship').controller('latest',
['$scope', '$http', function ($scope,$http) {
var urlBase = baseurl + '/api/home/LatestProblems';
$http.get(urlBase).success(function (data) {
$scope.data = data;
}).error(function (data) {
console.log(data);
});
$http.get(baseurl + '/api/home/mylatestproblems')
.success(function (data) {
$scope.data2 = data;
}).error(function (data) {
console.log(data);
});
}]
);
Run Code Online (Sandbox Code Playgroud)
所以我没有登录,第一个方法成功返回数据.第二种方法返回(在成功函数中)包含等效登录页面的数据.也就是说,如果你请求一个标有[授权]并且你没有登录的控制器动作,你会在mvc中获得什么.
我希望它返回401未授权,以便我可以根据用户是否登录显示不同的数据.理想情况下,如果用户已登录,我希望能够访问Controller的用户属性,以便我可以返回特定于该成员的数据.
更新:由于下面的建议似乎都不再适用(对Identity或WebAPI的更改)我在github上创建了一个原始示例,它应该说明问题.
我在VS IntelliSense中遇到过这两个关键字.我试图谷歌搜索他们之间的差异,并没有得到一个明确的答案.其中哪一个具有中小型XML文件的最佳性能.谢谢
在查看ASP.NET Web API中的文章异常处理之后,我对于何时抛出异常vs返回错误响应感到困惑.我还想知道当你的方法返回特定于域的模型而不是HttpResponseMessage... 时是否可以修改响应
所以,在这里回顾一下我的问题,然后是一些带有#s的代码:
HttpResponseMessage而不是具体的域模型,以便可以自定义消息吗?HttpResponseExceptionVS有Request.CreateErrorResponse什么区别?输出到客户端似乎相同......HttpError"包装"错误中的响应消息(是否抛出异常或返回错误响应)?// CASE #1
public Customer Get(string id)
{
var customer = _customerService.GetById(id);
if (customer == null)
{
var notFoundResponse = new HttpResponseMessage(HttpStatusCode.NotFound);
throw new HttpResponseException(notFoundResponse);
}
//var response = Request.CreateResponse(HttpStatusCode.OK, customer);
//response.Content.Headers.Expires = new DateTimeOffset(DateTime.Now.AddSeconds(300));
return customer;
}
// CASE #2
public HttpResponseMessage Get(string id)
{
var customer = _customerService.GetById(id);
if (customer …Run Code Online (Sandbox Code Playgroud) c# ×8
.net ×3
sql-server ×2
t-sql ×2
.net-core ×1
alter-column ×1
alter-table ×1
asp.net-core ×1
delegates ×1
httpresponse ×1
lambda ×1
linq-to-xml ×1
owin ×1
sql ×1
varchar ×1
webclient ×1
xml ×1