我读了很多问题,但我找不到合适的答案.
当我尝试在VS2012中编译项目时,我得到了以下结果:
命令"....\tools\bin \nuget pack Packages\Lib.Html.nuspec - OutputDirectory ....\bin\Zip\Packages -NoPackageAnalysis"退出,代码为1.
我查找了我的.csproj文件中的代码行,其中应该是错误,并且:
<Exec Command="$(ProjectDir)..\..\tools\bin\nuget pack $(ProjectDir)Packages\Lib.Html.nuspec -OutputDirectory $(OutputPath)Packages -NoPackageAnalysis" />
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
[编辑]启动该项目的调试并忽略"构建错误",我有一个新警报:
"Visual Studio无法启动调试,因为缺少调试目标'[project.exe path]'.请构建项目并重试,或者相应地设置OutputPath和AssemblyName属性以指向目标程序集的正确位置."
我正在使用 System.Diagnostics.Process.Start() 在 Linux 操作系统上远程启动命令。到目前为止,我已经能够启动简单的命令,然后读取输出。
例如,我可以执行该命令echo Hello World并读取Hello World其输出。
这是简化的代码:
public void Execute(string file, string args) {
Process process = new Process {
StartInfo = {
FileName = file,
Arguments = args,
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false
}
};
process.Start();
}
Run Code Online (Sandbox Code Playgroud)
为了更清楚起见,我使用上面的代码,如下所示Execute("echo", "Hello World");:
这是我的问题:只要我执行简单的命令,一切都会顺利进行,但我想使用管道和重定向来启动命令,以便对命令及其输出有更强的控制(不将输出本身处理为文本) )。
那么,是否有解决方法(或者可能是特定的库)来实现此结果?
我研究了如何在MVC项目中使用API,但我对此有些怀疑.(在任何人问之前,我用C#语言写作).
到目前为止,我知道Api的路由配置是在WebApiConfig类中设置的,默认路由是:
routeTemplate: "api/{controller}/{id}"
Run Code Online (Sandbox Code Playgroud)
通过这样做,当我编译一个jSon请求时,我知道我必须调用哪个URI才能获得特定的结果.
但我想更具体一点,所以我修改了Api的路线:
routeTemplate: "api/{controller}/{action}/{id}"
Run Code Online (Sandbox Code Playgroud)
通过这条路线,我将能够直接为我的ApiController中的特定动作(方法?)构建一个URI.
我还了解到,/{controller}/使用jSon构建URI时,是类的名称.也就是说,如果类是ProductsController我必须用来构建URI的控制器名称/products.(所以整个网址都是/api/products).
这里的问题是:
如果我有一个名为just的ApiController类Products,它是否可以识别为URI的一部分?或者ApiController类必须以"Controller"结尾?
按照教程我把我的ApiController和其他控制器放在同一个文件夹中.我知道可以将Apis放入不同的文件夹中.那么,MVC会自动识别每一个API吗?我的意思是,无论我在哪里保存它们,它们都被认为是API吗?
如果是这样,我最终可以调用位于与我正在处理的项目不同的项目中的API吗?
我可以使用一组API创建单个项目(作为类库)吗?
如果我想在不同的项目中调用API,路由配置是否会更改?
在我的项目中,我有两个不同的控制器.
这是主要的一个:
public class Main : Controller
{
public ActionResult Index()
{
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
这是另一个:
public class OtherOne : Controller
{
public ActionResult RandomAction()
{
return ... //more code here
}
}
Run Code Online (Sandbox Code Playgroud)
我应该在"OtherOne/RandomAction"中返回什么才能获得"主要/索引"操作的相同结果?
我的主页面上有一些Html.RenderPartial和一个随机的ContentPlaceHolder,或多或少像这样:
<body>
<% Html.RenderPartial("Controls/Menu"); %>
<% Html.RenderPartial("Controls/GenericControl"); %>
<asp:ContentPlaceHolder ID="MyContent" runat="server" />
</body>
Run Code Online (Sandbox Code Playgroud)
在Menu.ascx文件中,我有一个按钮列表.在GenericControl.ascx文件中,有一些按钮来管理内容.
我在菜单中拥有与按钮一样多的视图,内容如下所述:
<asp:Content ID="Content1" ContentPlaceHolderID="MyContent" runat="server">
<div>Some divs here</div>
<asp:Content>
Run Code Online (Sandbox Code Playgroud)
这是我的问题.我想在我的视图中添加另一个asp:Content,我不想在Master Page中链接它,而是在GenericControl中.
显然我不能使用ContentPlaceHolder.我正在尝试使用PlaceHolder,但我遇到了一些问题,无法找到如何使用它.