javascript

java

python

c#

android

c++

node.js

php

reactjs

jquery

html

css

ios

.net

git

ruby-on-rails

sql

c

string

ruby

我如何从con运行symfony 2 run命令

我想知道如何从浏览器查询或控制器中运行Symfony 2命令。

这是因为我无法托管运行它,并且每个cron作业都由管理员设置。

我什至没有启用exec()功能,所以当我要测试它时,必须将命令中的所有内容复制到某个测试控制器,这不是最佳解决方案。

trans by 2020-07-08T02:11:30Z

symfony-如何获取Symfony2中控制器所有路由的列表?

我有一个实现所有路由/ URL的控制器。我的想法是在所有帮助页面上提供通用索引。

有没有办法在Symfony2中获得控制器定义的所有路由(从控制器内部)?

trans by 2020-07-06T07:47:39Z

为什么在这里“找不到与请求URI匹配的HTTP资源”?

我的控制器中有这样的代码:

[Route("api/deliveryitems/InsertIntoPPTData/{stringifiedRecord}")]

...而我通过邮递员称呼它是这样的:

    http://localhost:21609/api/deliveryitems/InsertIntoPPTData?
stringifiedRecord=serNum77;tx2;siteNum2;bla2.xml;ppt_user2;tx_memo2;file_beg2;file_end2

...但是得到:

{
Message: "No HTTP resource was found that matches the request URI     
'http://localhost:21609/api/deliveryitems/InsertIntoPPTData?   stringifiedRecord=serNum77;tx2;siteNum2;bla2.xml;ppt_user2;tx_memo2;file_beg2;file_end2'."
MessageDetail: "No type was found that matches the controller named 'deliveryitems'."
}

发现以相同方式创建和调用的其他REST方法也很好-为什么不这样做呢? 它与其他服务器唯一的不同之处是它是HttpPost,而其他服务器是HttpGet。 那有很大的不同吗? 尝试调用此REST方法时,我从Postman的下拉列表中选择“ Post”。

更新

是的,它显然与作为Post并在URI中传递args无关,因为我现在通过HttpGet方法得到了同样的东西:

{
Message: "No HTTP resource was found that matches the request URI     
'http://localhost:21609/api/department/getndeptsfromid?firstId=2&countToFetch=12'."
MessageDetail: "No action was found on the controller 'Department' that matches the request."
}

我这样称呼邮递员:

http://localhost:21609/api/department/getndeptsfromid?firstId=2&countToFetch=12

...并且确实出现在我的控制器中:

[HttpGet]
[Route("api/department/getndeptsfromid/{firstId}/{countToFetch}")]
public List<Department> GetNDepartmentsFromID(int FirstId, int CountToFetch)
{
    return CCRService.GetNDepartmentsFromID(FirstId, CountToFetch);
}

更新2

我以为我在更改此代码时将要解决它:

String.Format("api/department/getndeptsfromid/{0}/{1}", FirstId, CountToFetch)

...对此:

String.Format("api/department/getndeptsfromid?firstId={0}&countToFetch={1}", FirstId, CountToFetch)

...但是我仍然得到相同的err msg ...

更新3

我发现这也不起作用:

http://localhost:21609/api/delivery/invnumbyid?ID=33

...因此有一个确定的模式。 我进行的每个包含args / params的REST API调用都以相同的方式失败; 所有其他(http://localhost:21609/api/deliveryitems/InsertIntoPPTData/serNum77;tx2;siteNum2;bla2.xml;ppt_user2;tx_memo2;file_beg2;file_end2)都很好。 IOW,如果URI中没有参数,则发现该方法。 如果有参数,则没有。

因此,显然我在URI中传递args / vals时出现了问题(在单个arg的情况下追加了“?=”,在两个args的情况下追加了“?=&=”))和/或 我如何设置路由有些问题。 具体来说,此样式有效:

[Route("api/Deliveries/Count")]

...而这种风格没有:

[Route("api/delivery/invnumbyid/{ID}")]

我将尽快解决这个问题-50表示这个戈尔迪斯克结的纠结,如果今天(在设立赏金之前)得到回答,则指向100。

更新4

我将路由更改为包括arg的数据类型,从而实现了:

[Route("api/delivery/invnumbyid/{ID}")]

-变成了这个:

[Route("api/delivery/invnumbyid/{ID:int}")]"

但是它仍然失败了,咆哮着:

{
Message: "No HTTP resource was found that matches the request URI 
'http://localhost:21609/api/delivery/invnumbyid?ID=45'."
MessageDetail: "No action was found on the controller 'Delivery' that matches the request."
}

然后,“百灵鸟”,我试图将其输入邮递员:

http://localhost:21609/api/delivery/invnumbyid/45

...而且有效! (我一直认为它应该是“ http://localhost:21609/api/deliveryitems/InsertIntoPPTData/serNum77;tx2;siteNum2;bla2.xml;ppt_user2;tx_memo2;file_beg2;file_end2”)

但是邮递员的类似尝试:

http://localhost:21609/api/department/getndeptsfromid/2/12/

...继续失败,并显示“没有为一个或多个必需参数提供值”。 即使被击中:

[HttpGet]
[Route("api/department/getndeptsfromid/{firstId}/{countToFetch}")]
public List<Department> GetNDepartmentsFromID(int FirstId, int CountToFetch)
{
    return HHSService.GetNDepartmentsFromID(FirstId, CountToFetch);
}

...并且GetNDepartmentsFromID()的args具有预期的val(2和12)

更糟糕/更奇怪的是,我现在使用“ http://localhost:21609/api/deliveryitems/InsertIntoPPTData/serNum77;tx2;siteNum2;bla2.xml;ppt_user2;tx_memo2;file_beg2;file_end2”得到的结果:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html
    xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>IIS 8.0 Detailed Error - 404.0 - Not Found</title>
        <style type="text/css">
            <!-- 
body{margin:0;font-size:.7em;font-family:Verdana,Arial,Helvetica,sans-serif;} 
code{margin:0;color:#006600;font-size:1.1em;font-weight:bold;} 
.config_source code{font-size:.8em;color:#000000;} 
pre{margin:0;font-size:1.4em;word-wrap:break-word;} 
ul,ol{margin:10px 0 10px 5px;} 
ul.first,ol.first{margin-top:5px;} 
fieldset{padding:0 15px 10px 15px;word-break:break-all;} 
.summary-container fieldset{padding-bottom:5px;margin-top:4px;} 
legend.no-expand-all{padding:2px 15px 4px 10px;margin:0 0 0 -12px;} 
legend{color:#333333;;margin:4px 0 8px -12px;_margin-top:0px; 
font-weight:bold;font-size:1em;} 
a:link,a:visited{color:#007EFF;font-weight:bold;} 
a:hover{text-decoration:none;} 
h1{font-size:2.4em;margin:0;color:#FFF;} 
h2{font-size:1.7em;margin:0;color:#CC0000;} 
h3{font-size:1.4em;margin:10px 0 0 0;color:#CC0000;} 
h4{font-size:1.2em;margin:10px 0 5px 0; 
}#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS",Verdana,sans-serif; 
 color:#FFF;background-color:#5C87B2; 
}#content{margin:0 0 0 2%;position:relative;} 
.summary-container,.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;} 
.content-container p{margin:0 0 10px 0; 
}#details-left{width:35%;float:left;margin-right:2%; 
}#details-right{width:63%;float:left;overflow:hidden; 
}#server_version{width:96%;_height:1px;min-height:1px;margin:0 0 5px 0;padding:11px 2% 8px 2%;color:#FFFFFF; 
 background-color:#5A7FA5;border-bottom:1px solid #C1CFDD;border-top:1px solid #4A6C8E;font-weight:normal; 
 font-size:1em;color:#FFF;text-align:right; 
}#server_version p{margin:5px 0;} 
table{margin:4px 0 4px 0;width:100%;border:none;} 
td,th{vertical-align:top;padding:3px 0;text-align:left;font-weight:normal;border:none;} 
th{width:30%;text-align:right;padding-right:2%;font-weight:bold;} 
thead th{background-color:#ebebeb;width:25%; 
}#details-right th{width:20%;} 
table tr.alt td,table tr.alt th{} 
.highlight-code{color:#CC0000;font-weight:bold;font-style:italic;} 
.clear{clear:both;} 
.preferred{padding:0 5px 2px 5px;font-weight:normal;background:#006633;color:#FFF;font-size:.8em;} 
-->
        </style>
    </head>
    <body>
        <div id="content">
            <div class="content-container">
                <h3>HTTP Error 404.0 - Not Found</h3>
                <h4>The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.</h4>
            </div>
            <div class="content-container">
                <fieldset>
                    <h4>Most likely causes:</h4>
                    <ul>
                        <li>The directory or file specified does not exist on the Web server.</li>
                        <li>The URL contains a typographical error.</li>
                        <li>A custom filter or module, such as URLScan, restricts access to the file.</li>
                    </ul>
                </fieldset>
            </div>
            <div class="content-container">
                <fieldset>
                    <h4>Things you can try:</h4>
                    <ul>
                        <li>Create the content on the Web server.</li>
                        <li>Review the browser URL.</li>
                        <li>Check the failed request tracing log and see which module is calling SetStatus. For more information, click 
                            <a href="http://go.microsoft.com/fwlink/?LinkID=66439">here</a>. 
                        </li>
                    </ul>
                </fieldset>
            </div>
            <div class="content-container">
                <fieldset>
                    <h4>Detailed Error Information:</h4>
                    <div id="details-left">
                        <table border="0" cellpadding="0" cellspacing="0">
                            <tr class="alt">
                                <th>Module</th>
                                <td>&nbsp;&nbsp;&nbsp;IIS Web Core</td>
                            </tr>
                            <tr>
                                <th>Notification</th>
                                <td>&nbsp;&nbsp;&nbsp;MapRequestHandler</td>
                            </tr>
                            <tr class="alt">
                                <th>Handler</th>
                                <td>&nbsp;&nbsp;&nbsp;StaticFile</td>
                            </tr>
                            <tr>
                                <th>Error Code</th>
                                <td>&nbsp;&nbsp;&nbsp;0x80070002</td>
                            </tr>
                        </table>
                    </div>
                    <div id="details-right">
                        <table border="0" cellpadding="0" cellspacing="0">
                            <tr class="alt">
                                <th>Requested URL</th>
                                <td>&nbsp;&nbsp;&nbsp;http://localhost:21609/api/deliveryitems/InsertIntoPPTData/serNum77;tx2;siteNum2;bla2.xml;ppt_user2;tx_memo2;file_beg2;file_end2</td>
                            </tr>
                            <tr>
                                <th>Physical Path</th>
                                <td>&nbsp;&nbsp;&nbsp;C:\project\git\CStore\HHS.API\api\deliveryitems\InsertIntoPPTData\serNum77;tx2;siteNum2;bla2.xml;ppt_user2;tx_memo2;file_beg2;file_end2</td>
                            </tr>
                            <tr class="alt">
                                <th>Logon Method</th>
                                <td>&nbsp;&nbsp;&nbsp;Anonymous</td>
                            </tr>
                            <tr>
                                <th>Logon User</th>
                                <td>&nbsp;&nbsp;&nbsp;Anonymous</td>
                            </tr>
                            <tr class="alt">
                                <th>Request Tracing Directory</th>
                                <td>&nbsp;&nbsp;&nbsp;C:\Users\clay\Documents\IISExpress\TraceLogFiles\HHS.API</td>
                            </tr>
                        </table>
                        <div class="clear"></div>
                    </div>
                </fieldset>
            </div>
            <div class="content-container">
                <fieldset>
                    <h4>More Information:</h4> 
  This error means that the file or directory does not exist on the server. Create the file or directory and try the request again. 

                    <p>
                        <a href="http://go.microsoft.com/fwlink/?LinkID=62293&amp;IIS70Error=404,0,0x80070002,7601">View more information &raquo;</a>
                    </p>
                </fieldset>
            </div>
        </div>
    </body>
</html> 

我勒个去!

我可悲的是,我遗憾地记得,在沙沙作响的窗帘后面总是藏着另一个石像鬼(罗宾逊·杰弗斯和埃德加·艾伦·坡似乎在这里摔跤)。 游荡...

更新5

好的,这里的说法有所不同:

来自邮递员,如果我使用以下网址:

http://localhost:21609/api/department/getndeptsfromid/2/12/

我把它变成这种方法:

[HttpGet]
[Route("api/department/getndeptsfromid/{firstId}/{countToFetch}")]
public List<Department> GetNDepartmentsFromID(int FirstId, int CountToFetch)
{
    return HHSService.GetNDepartmentsFromID(FirstId, CountToFetch);
}

...其中FirstId的值是2,而CountToFetch的值是12(正如我期望的那样)。 但是随后,邮递员将“ 500没有为一个或多个必需参数提供值”的符号发送回我的软件包。

Q恶魔! 显然两个参数都通过了!

如果我使用的URI看起来更正确:

http://localhost:21609/api/department/getndeptsfromid?firstId=2&countToFetch=12

我得到:

{
Message: "No HTTP resource was found that matches the request URI   
'http://localhost:21609/api/department/getndeptsfromid?firstId=2&countToFetch=12'."
MessageDetail: "No action was found on the controller 'Department' that matches the request."
}

但这是我提供的路线:

[Route("api/department/getndeptsfromid/{firstId}/{countToFetch}")]

...所以我想说的是,我确实在控制器上提供了一个匹配的动作。另外,顺便说一句,如果我将其作为URI输入到Postman中:

http://localhost:21609/api/department/getndeptsfromid

...然后使用Postman的“ URL参数键/值”界面添加这些内容,它将生成与上述完全相同的URL,如下所示:

enter image description here

...并具有完全相同的结果。

我只能再说一遍(请原谅我受“ La Uvas de la Ira”启发的西班牙语):“恶魔!

trans by 2020-07-05T00:32:53Z

Backbone.js控制器中的默认路由?

我想为我的ribs.js控制器设置默认路由。 目前我这样做:

class DealSearchController extends Backbone.Controller
    routes:
        'list' : 'showListView'
        'photos' : 'showPhotoView'
        'map' : 'showMapView'

    initialize: ->
        ....        
            window.location.hash = 'list' if ! _.include( _.keys(@routes),(window.location.hash || '').replace('#',''))

有更好的方法吗?

trans by 2020-07-04T06:28:28Z

angularjs-Angular JS可调整大小的div Directi

我的网站将有多个部分,每个部分我都打算重新调整大小。 为此,我制定了“可调整大小”的指令,例如:

<div class="workspace" resize="full" ng-style="resizeStyle()">
<div class="leftcol" resize="left" ng-style="resizeStyle()">

使用类似如下的指令:

lwpApp.directive('resize', function ($window) {
    return {
        scope: {},

        link: function (scope, element, attrs) {
            scope.getWinDim = function () {
                return {
                    'height': window.height(),
                    'width': window.width()
                };
            };

            // Get window dimensions when they change and return new element dimensions
            // based on attribute
            scope.$watch(scope.getWinDim, function (newValue, oldValue) {
                scope.resizeStyle = function () {
                    switch (attrs.resize) {
                    case 'full':
                        return {
                            'height': newValue.height,
                            'width': (newValue.width - dashboardwidth)
                        };

                    case 'left':
                        return {
                            'height': newValue.height,
                            'width': (newValue.width - dashboardwidth - rightcolwidth)
                        };

                    etc...
                };
            }, true);

            //apply size change on window resize
            window.bind('resize', function () {
                scope.$apply(scope.resizeStyle);
            });
        }
    };
});

如您所见,这只会在窗口调整大小时调整每个div的大小,并且每个指令都有一个隔离范围。 这对于它的构建工作正常,但最终我想通过可拖动的栏使div的子集可调整大小。 例如

div1     div2
----------------
|     ||       |
|     ||       |
|     ||       |
|     ||       |
----------------
    draggable bar in middle

在可拖动栏的移动(沿水平方向)上,我大概需要通过父控制器(?)的作用域来访问div1,div2的宽度。 我的问题是:

  1. 这是使角度可调整div的“正确”方法吗? 特别是一个div的大小何时影响另一个?

  2. 我个人认为(1)的答案是“不,我没有正确执行,因为当每个指令都有隔离范围时,我无法在它们之间进行通信。” 如果是这样,我该如何考虑div之间的窗口大小和可拖动大小调整?

trans by 2020-07-03T15:55:28Z

AngularJs:使用$ routeProvid两次调用控制器

模块路线:

var switchModule = angular.module('switchModule', []);

switchModule.config(['$routeProvider', function($routeProvider) {
    $routeProvider.
    when('/build-content', {templateUrl: 'build-content.html', controller: BuildInfoController});
}]);

控制器:

function BuildInfoController($http, $scope){
    alert("hello");
}

HTML:

<html ng-app="switchModule">
...
<body>
    <ul>
        <li><a href="#build-content"/></a></li>
    </ul>
    <div class="ng-view"></div>
</body>
...

每次我单击超链接''时,“ BuildInfoController”将被调用两次。 我在这里想念什么吗?

trans by 2020-06-30T06:16:03Z

javascript-AngularJS:如何将参数/函数传递给指令?

看看这个小提琴,我需要更改什么,使用我在HTML中定义的参数对模板中的表达式求值? 因为我通过了SAVE按钮,所以它应该调用控制器的blabla()功能。

var myApp = angular.module('MyApp',[])
myApp.directive('editkeyvalue', function() {
    return {
        restrict: 'E',
        replace: true,
        scope: {
            accept: "expression"
        },
        template : '<div><label class="control-label">{{key}}</label>' +
        '<label class="control-label">{{key}}</label>' +
          '<input type="text" ng-model="value" />'+
        '<button type="button" x-ng-click="cancel()">CANCEL</button>' +
        '<button type="submit" x-ng-click="save()">SAVE</button></div>',

      controller: function($scope, $element, $attrs, $location) {
        $scope.save= function() {
          $scope.accept();
        };
      }
    }
});

我真的看不出来。 感谢帮助!

trans by 2020-06-25T22:34:00Z

ruby on rails-如何从ApplicationHelp调用ApplicationController方法

我想在视图中提供csv链接,并将csv生成代码放置在send_data中。但是,出现此错误:

undefined method `send_data' for #<#<Class:0x0000010151c708>:0x0000010151a070>

引用此:

send_data content, :type => "text/plain",
  :filename => filename,
  :disposition => 'attachment'

如果我将csv代码放在控制器中,则可以正常工作。 我希望使用帮助程序来避免为每个要为其提供csv选项的控制器定义路由(我有很多)。 如何使send_data(和其他必要的方法)对助手可用?

trans by 2020-02-17T14:22:24Z

ruby on rails-如何分辨控制器解析的格式

在具有以下代码的Rails控制器操作中:

respond_to do |format|
  format.json{ render :json=>  {:status => 200, :response=>@some_resource} }
  format.html { redirect_to(some_resource_path)}
end

如何记录控制器将解析的格式,即“ HTML”或“ json”? format是收集器类型。 有没有一种方法来获取表示格式的字符串?

trans by 2020-02-15T21:03:50Z

asp.net mvc-发布并使用相同的方法签名

在控制器中,我有两个称为“朋友”的动作。 执行的内容取决于它是“获取”还是“发布”。

所以我的代码片段看起来像这样:

// Get:
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Friends()
{
    // do some stuff
    return View();
}

// Post:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Friends()
{
    // do some stuff
    return View();
}

但是,由于我有两个具有相同签名的方法(朋友),因此无法编译。 我该如何创建它? 我是否只需要创建一个动作,但在其中的“获取”和“发布”之间进行区分? 如果是这样,我该怎么做?

trans by 2020-01-07T11:56:37Z

如何从angularjs中的另一个控制器调用函数?

这个问题已经在这里有了答案:

  • 一个AngularJS控制器可以调用另一个吗?                                     13个答案
  • 如何将一个控制器注入到AngularJS中的另一个控制器中                                     7个答案

我需要在Angular js中的另一个控制器中调用函数。如何可能的方式请提前帮助我

代码:

app.controller('One', ['$scope',
    function($scope) {
        $scope.parentmethod = function() {
            // task
        }
    }
]);
app.controller('two', ['$scope',
    function($scope) {
        $scope.childmethod = function() {
            // Here i want to call parentmethod of One controller
        }
    }
]);
trans by 2019-12-24T16:25:58Z

asp.net mvc-我们可以在RedirectToAction中将模型作为参数传递吗?

我想知道,有什么技术可以将Model作为参数传递给RedirectToAction

例如:

public class Student{
    public int Id{get;set;}
    public string Name{get;set;}
}

调节器

public class StudentController : Controller
{
    public ActionResult FillStudent()
    {
        return View();
    }
    [HttpPost]
    public ActionResult FillStudent(Student student1)
    {
        return RedirectToAction("GetStudent","Student",new{student=student1});
    }
    public ActionResult GetStudent(Student student)
    {
        return View();
    }
}

我的问题-我可以在RedirectToAction中传递学生模型吗?

trans by 2019-11-08T22:29:43Z

表格-在Rails 3中,当资源创建操作失败并调用render:new时,为什么URL必须更改为资源的索引URL?

我有一个称为书的资源。 它在我的路由文件中正确列为资源。

我有一个新操作,它为新视图提供了标准:

@book = Book.new

在模型上,有些属性可以通过状态进行验证,因此,如果保存操作失败,将生成错误。

在我的控制器中:

@book = Book.create
...  # some logic
if @book.save
  redirect_to(@book)
else
  render :new
end

这是相当标准的。 以及使用render:new的基本原理是将对象传递回视图,并可以报告错误,重新填写表单条目等。

这是可行的,除了每次将我发送回表单(通过render:new)时,都会显示我的错误,但是我的URL是INDEX URL,即

/books

而不是

/books/new

这是我首先开始的地方。 我看过其他一些有关此问题的帖子,但没有答案。 至少,有人会假设它会把您放在/ books / create,我也有一个查看文件(在这种情况下,与new相同)。

我可以做这个:

# if the book isn't saved then
flash[:error] = "Errors!"
redirect_to new_book_path

但是然后@book数据以及错误消息丢失了,这是具有表单和动作等的全部内容。

为什么通常在URL调用INDEX方法(列出所有书籍)时,render:new使我进入/ books(我的索引操作)?

trans by 2019-11-05T18:34:47Z

java-在Spring MVC中,使用@ResponseBody时如何设置mime类型标头

我有一个Spring MVC控制器,它返回一个JSON字符串,我想将mimetype设置为application / json。 我怎样才能做到这一点?

@RequestMapping(method=RequestMethod.GET, value="foo/bar")
@ResponseBody
public String fooBar(){
    return myService.getJson();
}

业务对象已经可以作为JSON字符串使用,因此使用MappingJacksonJsonView并不是我的解决方案。 @ResponseBody非常完美,但是我该如何设置模仿类型?

trans by 2019-09-25T17:36:46Z

数组 - AngularJS自定义过滤器功能

在我的控制器中,我想过滤一个对象数组。 这些对象中的每一个都是一个可以包含字符串和列表的映射

我尝试使用$filter('filter')格式,但我不知道如何访问我的函数内的数组的各个元素。 这是一个显示我想要的内容的片段。

$filter('filter')(array, function() {
  return criteriaMatch(item, criteria);
});

然后在$filter('filter')中,我将检查每个属性是否匹配

var criteriaMatch = function(item, criteria) {
  // go thro each individual property in the item and criteria
  // and check if they are equal
}

我必须在控制器中完成所有这些操作并编译列表列表并在范围内设置它们。 所以我确实只需要以这种方式访问$filter('filter')。 到目前为止,我在网络中找到的所有示例都在函数内部进行静态条件搜索,它们不传递条件对象并对数组中的每个项目进行测试。

trans by 2019-09-14T04:07:14Z

.net - ASP.NET MVC:是否为每个请求创建了控制器?

非常简单的问题:ASP.NET中的控制器是为每个HTTP请求创建的,还是在应用程序启动时创建并在整个请求中重用?

是否只为特定的HTTP请求创建控制器?

如果我之前的假设是正确的,我可以依赖它吗? 我想创建仅适用于一个请求的数据库上下文(实体框架)。 如果我将它创建为在控制器的构造函数中初始化的属性,是否会为每个请求创建新的上下文实例?

trans by 2019-09-08T21:02:04Z

asp.net - Web API路由 - api / {controller} / {action} / {id}“dysfunctions”api / {controller} / {id}

我在Global.asax中有默认路由:

 RouteTable.Routes.MapHttpRoute(
         name: "DefaultApi",
         routeTemplate: "api/{controller}/{id}",
         defaults: new { id = System.Web.Http.RouteParameter.Optional }
         );

我希望能够定位特定的功能,所以我创建了另一条路线:

RouteTable.Routes.MapHttpRoute(
         name: "WithActionApi",
         routeTemplate: "api/{controller}/{action}/{id}",
         defaults: new { id = System.Web.Http.RouteParameter.Optional }
         );

所以,在我的控制器中,我有:

    public string Get(int id)
    {
        return "object of id id";
    }        

    [HttpGet]
    public IEnumerable<string> ByCategoryId(int id)
    {
        return new string[] { "byCategory1", "byCategory2" };
    }

拨打{action}会给我我想要的东西。但是,拨打RecordByCategoryIdController会给我错误

找到了与请求匹配的多个操作:...

我明白为什么会这样 - 路由只定义了哪些URL有效,但是当涉及到功能匹配时,{action}RecordByCategoryIdController都匹配.../api/recordbycategoryid/5,这就是混淆框架的原因。

我需要做些什么才能让默认的API路由再次运行,并保留一个{action}? 我想创建一个名为RecordByCategoryIdController的不同控制器来匹配默认的API路由,我会请求.../api/recordbycategoryid/5。但是,我发现它是一个&#34;脏&#34; (因此不能令人满意)解决方案。 我已经找到了这方面的答案,没有关于使用{action}的路线的教程甚至提到了这个问题。

trans by 2019-08-21T07:42:20Z

设计模式 - ASP.NET MVC - 控制器中是否应存在业务逻辑?

几天前德里克·惠特克发表了一篇文章,这篇文章引起了我一段时间的好奇:控制器中是否存在商业逻辑?

到目前为止,我见过的所有ASP.NET MVC演示都将存储库访问和业务逻辑放在控制器中。 有些甚至在那里抛出验证。 这会导致相当大的膨胀控制器。 这真的是使用MVC框架的方式吗? 看起来这最终会导致很多重复的代码和逻辑分散在不同的控制器上。

trans by 2019-08-08T01:31:53Z

javascript - 在单页面应用程序中使用AngularJS的多个控制器

我想知道如何为单个页面应用程序使用多个控制器。 我试图找出它并且我发现了与我的问题非常相似的问题,但是解决特定问题的解决方案只有很多,你最终没有为单页面应用程序使用多个控制器。

那是因为对一个页面使用多个控制器是不明智的吗? 或者它是不可能的?

假设我已经有一个kick-ass图像轮播控制器在主页面上工作,但后来我学会了如何(让我们说)使用模态,我也需要一个新的控制器(或者我需要一个控制器的任何其他东西)。 那我该怎么办?

我已经看到了其他问题的一些答案,他们问我几乎和我一样的事情,人们回答“* OMG。你为什么要这样做,就这样做......”。

什么是最好的方式,或者你是如何做到的?

编辑

你们中的许多人正在回答声明两个控制器,然后使用ng-controller来调用它。我在下面使用这段代码然后用ng-controller调用MainCtrl。

app.config(function($routeProvider, $locationProvider) {                        
  $routeProvider                                                                
       .when('/', {                                            
         templateUrl: "templates/main.html",                                               
         controller:'MainCtrl',                                
        })                                                                      
        .otherwise({                      
            template: 'does not exists'   
        });      
});

如果我可以在没有它的情况下使用ng-controller,为什么我甚至需要在这里设置一个控制器呢? 这让我很困惑。 (你不能这样添加两个控制器,我想...)

trans by 2019-08-02T15:57:52Z

java - Spring Controller中的Init方法(注释版本)

我正在将控制器转换为更新的注释版本。 在旧版本中,我曾使用以下命令在springmvc-servlet.xml中指定init方法:

<beans>
    <bean id="myBean" class="..." init-method="init"/>
</beans>

如何使用注释版本指定init方法?

trans by 2019-07-28T10:14:22Z

1 2 下一页 共2页