Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coldfusion 通过表单调用组件方法返回Wheels.ViewNotFound_Coldfusion_Coldfusion 9_Cfwheels - Fatal编程技术网

Coldfusion 通过表单调用组件方法返回Wheels.ViewNotFound

Coldfusion 通过表单调用组件方法返回Wheels.ViewNotFound,coldfusion,coldfusion-9,cfwheels,Coldfusion,Coldfusion 9,Cfwheels,我一直在寻找这个问题的答案,但在任何地方都找不到适合我的答案。我一直在使用相同的方法从cfc调用操作,但在这个例子中它似乎不起作用 这是带有cfWheels 1.1.6的CF9 我有以下表格: <form action="index.cfm?controller=QmAdmin&action=add-document" method="POST" id="addDocument" name="add&qu

我一直在寻找这个问题的答案,但在任何地方都找不到适合我的答案。我一直在使用相同的方法从cfc调用操作,但在这个例子中它似乎不起作用

这是带有cfWheels 1.1.6的CF9

我有以下表格:

    <form action="index.cfm?controller=QmAdmin&action=add-document" method="POST" id="addDocument" name="add" onsubmit="return submitForm(this.id);">
            
             <input type="text" id="addDocumentName" name="name" />
             <input type="text" id="addDocumentLink" name="link" />
             <input type="text" id="addDocumentDetails" name="details"/>

             <select name="parentid" id="addDocumentParent">
             </select>
                    
             <input type="submit" name="submit" class="btn" value="Add"/>   
        </form>     

但是,当单击submit按钮时,QmAdmin.cfc中的操作永远不会到达。我在要检查的操作中添加了日志记录,但从未到达。我刚刚得到一个错误页面,其中包含:

Wheels.ViewNotFound

在Qmadmin控制器中找不到addDocument操作的查看页面

操作肯定就在那里,使用
调用(使用正确的参数)可以很好地工作

应要求采取的行动:

    <cffunction name="addDocument" access="remote">
        <cfargument name="name" type="String">
        <cfargument name="link" type="String">
        <cfargument name="details" type="String">
        <cfargument name="parentid" type="numeric">
    
        <cftry>
            <cfquery name="addDocument">
                INSERT INTO BLANK.DOCUMENTS (ID, NAME, LINK, DETAILS, PARENT)
                VALUES (BLANK.SQ_DOCUMENTS_ID.NEXTVAL,
                   <cfqueryparam value="#name#" cfsqltype="cf_sql_varchar">,
                   <cfqueryparam value="#link#" cfsqltype="cf_sql_varchar">,
                   <cfqueryparam value="#details#" cfsqltype="cf_sql_varchar">,
                   <cfqueryparam value="#parentid#" cfsqltype="cf_sql_numeric">)
            </cfquery>
        <cfcatch type="any">
            <cfset flashInsert(error="An error occured, no changes were made")>
            <cfset redirectTo(controller="qmadmin", action="qmsadmin")>
        </cfcatch>
        </cftry>
    
        <cfset flashInsert(message="Successfully added document")>
        <cfset redirectTo(controller="qmadmin", action="qmsadmin")>
    </cffunction>

插入BLANK.DOCUMENTS(ID、名称、链接、详细信息、父项)
值(BLANK.SQ\u DOCUMENTS\u ID.NEXTVAL、,
,
,
,
)
我已尝试在coldfusion管理员中清除缓存,更改了大写形式,将表单调用的格式更改为QmAdmin.cfc?method=addDocument&arg1=&arg2=etc

在浏览器中直接使用url会返回相同的错误页面


这个错误是最近才开始出现的,这让我觉得一定是一些可配置的东西导致了这个错误,但我对coldfusion相当陌生,所以无法确定它。

事实证明,这可能是某种缓存错误造成的。对控制器的第一次引用,该控制器加载了使用的表单
controller=qmadmin
(小写),缓存以某种方式阻止了对
controller=qmadmin
的后续请求


在wheels中切换到设计模式禁用了缓存,它再次开始工作。接下来,将对控制器的初始调用调整为
controller=QmAdmin
似乎已经解决了问题。

您是否创建了操作“添加文档”的视图。这似乎是urlRewriting问题,或者您在控制器中有函数,但没有相同的查看页面。如果您有共享的操作代码,则更容易找到。我已从控制器添加了操作,没有视图,因为函数末尾有一个重定向,指向包含原始表单的页面,其中显示flashinsert消息。如果将表单URL更改为此,该怎么办<代码>索引.CFM?控制器= qMADMIN和ActudioAdDebug <代码>(注意,我用CAMEL调用动作名而不是断字),你也应该考虑写这样的表单动作,而不是:<代码> <代码>谢谢。克里斯,我给UrLFF()一个GO。我已经尝试过所有可能的大小写变体,但都不起作用。这可能是因为cfwheels将URL连字的方式。使用反连字符发生器插件。控制盘可能正在寻找名为Qm Admin的控制器。只是一个想法。。