我经常cd
进入app目录然后运行npm start
.
我觉得应该有一些方法来运行npm start
路径参数.但是,npm start文档不包含此类功能.
我试过自己只发现npm start ./myapp
不起作用.有没有办法做到这一点?
在常规的MVC控制器中,我们可以用a输出pdf FileContentResult
.
public FileContentResult Test(TestViewModel vm)
{
var stream = new MemoryStream();
//... add content to the stream.
return File(stream.GetBuffer(), "application/pdf", "test.pdf");
}
Run Code Online (Sandbox Code Playgroud)
但是我们怎样才能把它变成一个ApiController
?
[HttpPost]
public IHttpActionResult Test(TestViewModel vm)
{
//...
return Ok(pdfOutput);
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试过但它似乎不起作用.
[HttpGet]
public IHttpActionResult Test()
{
var stream = new MemoryStream();
//...
var content = new StreamContent(stream);
content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
content.Headers.ContentLength = stream.GetBuffer().Length;
return Ok(content);
}
Run Code Online (Sandbox Code Playgroud)
浏览器中显示的返回结果为:
{"Headers":[{"Key":"Content-Type","Value":["application/pdf"]},{"Key":"Content-Length","Value":["152844"]}]}
Run Code Online (Sandbox Code Playgroud)
在SO上有类似的帖子:从ASP.NET Web API中的控制器返回二进制文件 .它讨论输出现有文件.但我无法使用流.
有什么建议?
场景很简单,我需要从另一台服务器(不同于API服务器)登录才能检索访问令牌.
我Microsoft.Owin.Cors
在API服务器上安装了包.在Startup.Auth.cs
文件中,public void ConfigureAuth(IAppBuilder app)
我加入了
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
Run Code Online (Sandbox Code Playgroud)
在WebApiConfig.cs
下面public static void Register(HttpConfiguration config)
,我添加了以下几行:
// Cors
var cors = new EnableCorsAttribute("*", "*", "GET, POST, OPTIONS");
config.EnableCors(cors);
Run Code Online (Sandbox Code Playgroud)
我还应该改变什么?
我们知道在Visual Studio中为Web应用程序分配了一个随机端口号.它在我的办公桌面上工作正常.但是,当我将代码拉到我的笔记本电脑(来自VisualStudio.com)并运行Web应用程序时.我收到一条消息,说,
端口10360已被另一个应用程序使用.
我可以Recommendation #1
通过将端口更改为其他类似13333 来修复它.但我很好奇端口10360发生了什么.如何检查使用端口10360的应用程序?我该如何停止该申请?
首先它有效,但今天它失败了!
这是我定义date属性的方法:
[Display(Name = "Date")]
[Required(ErrorMessage = "Date of Submission is required.")]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
[DataType(DataType.Date)]
public DateTime TripDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
它一直在工作.但今天,当我调用相同的ApiController动作时:
[HttpPost]
public HttpResponseMessage SaveNewReport(TripLeaderReportInputModel model)
Run Code Online (Sandbox Code Playgroud)
萤火虫报道:
ExceptionMessage:
"Property 'TripDate' on type 'Whitewater.ViewModels.Report.TripLeaderReportInputModel'
is invalid. Value-typed properties marked as [Required] must also be marked with
[DataMember(IsRequired=true)] to be recognized as required. Consider attributing the
declaring type with [DataContract] and the property with [DataMember(IsRequired=true)]."
ExceptionType
"System.InvalidOperationException"
Run Code Online (Sandbox Code Playgroud)
发生了什么?是不是那些[DataContract]
对WCF
?我正在使用REST WebAPI
中MVC4 …
当与StructureMap实施DI中的WebAPI,我们使用了ServiceActivator中发现的
public class ServiceActivator : IHttpControllerActivator
{
public ServiceActivator(HttpConfiguration configuration) {}
public IHttpController Create(HttpRequestMessage request,
HttpControllerDescriptor controllerDescriptor, Type controllerType)
{
var controller = ObjectFactory.GetInstance(controllerType) as IHttpController;
return controller;
}
}
Run Code Online (Sandbox Code Playgroud)
但现在使用新的StructureMap,我的ReSharper建议:
类'StructureMap.ObjectFactory'已过时:ObjectFactory将在StructureMap的未来4.0版本中删除.支持使用Container类进行以后的工作
intellisense Container
给了我非常有限的信息.
我们应该如何使用Container类重写ServiceActivator?
新引入的nameof
运算符可以使我的代码成为"打字".
代替
return RedirectToAction("Edit");
Run Code Online (Sandbox Code Playgroud)
我们可以写
return RedirectToAction(nameof(Edit));
Run Code Online (Sandbox Code Playgroud)
但是要获得控制器的名称并不是那么简单,因为我们有一个Controller
后缀.只是想知道我是否想要一个
return RedirectToAction(nameof(Index), controllernameof(Home));
Run Code Online (Sandbox Code Playgroud)
代替
return RedirectToAction("Index", "Home");
Run Code Online (Sandbox Code Playgroud)
我们如何实现controllernameof
运营商?
web/api 应用程序中不再有 Startup.cs。
我们曾经能够注入IConfiguration
到该类中Startup
。
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration
}
...
}
Run Code Online (Sandbox Code Playgroud)
现在这些添加服务和配置代码已移至Program.cs中,从那里访问配置的正确方法是什么?
我们将在视图页面上添加一些Ajax函数.比如说,单击删除或插入按钮,将调用Action以在场景后面执行CRUD作业,然后在该操作后刷新项目列表.
在许多现有示例中,javascript代码嵌入在<script>
标记内的视图页面中.由于一个视图通常需要许多功能.比如,在插入记录时,会有收集表单数据的功能,验证数据(这部分可以很长),并通过调用操作$.ajax()
.出于这个原因,我们正在考虑将所有这些javascript放在一个单独的.js
文件中.
那么,这方面的专业实践是什么?我们应该将.js
文件放在同一个文件夹下Views
吗?或者应该将所有这些放入Script
文件夹并从那里引用?
我们应该.js
为每个单独的视图创建单独的文件,还是将.js
不同视图的所有文件合并到一个大文件中?
此外,我们喜欢如何使用C#代码进行分组#region
以便崩溃.JavaScript中有类似的东西吗?它太长了太容易了.
感谢您提供任何有用的建议.
c# ×3
asp.net-mvc ×2
ajax ×1
angular-ui ×1
angularjs ×1
asp.net ×1
cors ×1
iis-express ×1
javascript ×1
node.js ×1
structuremap ×1